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) * feat: optimize parameter * Revert "feat: optimize parameter" This reverts commit 957dfc95ddab598f260d3974732d56f802e7f0bd. * feat: can input irregulate excel --- 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 065968bc..3ed98a98 100644 --- a/src/components/Excel/src/ImportExcel.vue +++ b/src/components/Excel/src/ImportExcel.vue @@ -42,6 +42,40 @@ const inputRef = ref(null); const loadingRef = ref(false); + function shapeWorkSheel(sheet: XLSX.WorkSheet, range: XLSX.Range) { + let str = ' ', + char = 65, + customWorkSheet = { + t: 's', + v: str, + r: ' ', + 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: ' ', + 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) {