Commit 256e0275fe8213852ea390c42ab2020aeeebcc42
Committed by
GitHub
1 parent
c70cf3ca
Feat/modify input excel (#2587)
* feat: optimize parameter * Revert "feat: optimize parameter" This reverts commit 957dfc95ddab598f260d3974732d56f802e7f0bd. * feat: can input irregulate excel
Showing
1 changed file
with
36 additions
and
2 deletions
src/components/Excel/src/ImportExcel.vue
... | ... | @@ -42,6 +42,40 @@ |
42 | 42 | const inputRef = ref<HTMLInputElement | null>(null); |
43 | 43 | const loadingRef = ref<Boolean>(false); |
44 | 44 | |
45 | + function shapeWorkSheel(sheet: XLSX.WorkSheet, range: XLSX.Range) { | |
46 | + let str = ' ', | |
47 | + char = 65, | |
48 | + customWorkSheet = { | |
49 | + t: 's', | |
50 | + v: str, | |
51 | + r: '<t> </t><phoneticPr fontId="1" type="noConversion"/>', | |
52 | + h: str, | |
53 | + w: str, | |
54 | + }; | |
55 | + if (!sheet || !sheet['!ref']) return []; | |
56 | + let c = 0, | |
57 | + r = 1; | |
58 | + while (c < range.e.c + 1) { | |
59 | + while (r < range.e.r + 1) { | |
60 | + if (!sheet[String.fromCharCode(char) + r]) { | |
61 | + sheet[String.fromCharCode(char) + r] = customWorkSheet; | |
62 | + } | |
63 | + r++; | |
64 | + } | |
65 | + r = 1; | |
66 | + str += ' '; | |
67 | + customWorkSheet = { | |
68 | + t: 's', | |
69 | + v: str, | |
70 | + r: '<t> </t><phoneticPr fontId="1" type="noConversion"/>', | |
71 | + h: str, | |
72 | + w: str, | |
73 | + }; | |
74 | + c++; | |
75 | + char++; | |
76 | + } | |
77 | + } | |
78 | + | |
45 | 79 | /** |
46 | 80 | * @description: 第一行作为头部 |
47 | 81 | */ |
... | ... | @@ -49,8 +83,8 @@ |
49 | 83 | if (!sheet || !sheet['!ref']) return []; |
50 | 84 | const headers: string[] = []; |
51 | 85 | // A3:B7=>{s:{c:0, r:2}, e:{c:1, r:6}} |
52 | - const range = XLSX.utils.decode_range(sheet['!ref']); | |
53 | - | |
86 | + const range: XLSX.Range = XLSX.utils.decode_range(sheet['!ref']); | |
87 | + shapeWorkSheel(sheet, range); | |
54 | 88 | const R = range.s.r; |
55 | 89 | /* start in the first row */ |
56 | 90 | for (let C = range.s.c; C <= range.e.c; ++C) { | ... | ... |