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,6 +42,40 @@ | ||
42 | const inputRef = ref<HTMLInputElement | null>(null); | 42 | const inputRef = ref<HTMLInputElement | null>(null); |
43 | const loadingRef = ref<Boolean>(false); | 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 | * @description: 第一行作为头部 | 80 | * @description: 第一行作为头部 |
47 | */ | 81 | */ |
@@ -49,8 +83,8 @@ | @@ -49,8 +83,8 @@ | ||
49 | if (!sheet || !sheet['!ref']) return []; | 83 | if (!sheet || !sheet['!ref']) return []; |
50 | const headers: string[] = []; | 84 | const headers: string[] = []; |
51 | // A3:B7=>{s:{c:0, r:2}, e:{c:1, r:6}} | 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 | const R = range.s.r; | 88 | const R = range.s.r; |
55 | /* start in the first row */ | 89 | /* start in the first row */ |
56 | for (let C = range.s.c; C <= range.e.c; ++C) { | 90 | for (let C = range.s.c; C <= range.e.c; ++C) { |