From 256e0275fe8213852ea390c42ab2020aeeebcc42 Mon Sep 17 00:00:00 2001 From: jsong <32285893+jsong93@users.noreply.github.com> Date: Mon, 27 Feb 2023 12:52:09 +0800 Subject: [PATCH] Feat/modify input excel (#2587) --- src/components/Excel/src/ImportExcel.vue | 38 ++++++++++++++++++++++++++++++++++++-- 1 file changed, 36 insertions(+), 2 deletions(-) diff --git a/src/components/Excel/src/ImportExcel.vue b/src/components/Excel/src/ImportExcel.vue index 065968b..3ed98a9 100644 --- a/src/components/Excel/src/ImportExcel.vue +++ b/src/components/Excel/src/ImportExcel.vue @@ -42,6 +42,40 @@ const inputRef = ref<HTMLInputElement | null>(null); const loadingRef = ref<Boolean>(false); + function shapeWorkSheel(sheet: XLSX.WorkSheet, range: XLSX.Range) { + let str = ' ', + char = 65, + customWorkSheet = { + t: 's', + v: str, + r: '<t> </t><phoneticPr fontId="1" type="noConversion"/>', + h: str, + w: str, + }; + if (!sheet || !sheet['!ref']) return []; + let c = 0, + r = 1; + while (c < range.e.c + 1) { + while (r < range.e.r + 1) { + if (!sheet[String.fromCharCode(char) + r]) { + sheet[String.fromCharCode(char) + r] = customWorkSheet; + } + r++; + } + r = 1; + str += ' '; + customWorkSheet = { + t: 's', + v: str, + r: '<t> </t><phoneticPr fontId="1" type="noConversion"/>', + h: str, + w: str, + }; + c++; + char++; + } + } + /** * @description: 第一行作为头部 */ @@ -49,8 +83,8 @@ if (!sheet || !sheet['!ref']) return []; const headers: string[] = []; // A3:B7=>{s:{c:0, r:2}, e:{c:1, r:6}} - const range = XLSX.utils.decode_range(sheet['!ref']); - + const range: XLSX.Range = XLSX.utils.decode_range(sheet['!ref']); + shapeWorkSheel(sheet, range); const R = range.s.r; /* start in the first row */ for (let C = range.s.c; C <= range.e.c; ++C) { -- libgit2 0.23.3