Commit 256e0275fe8213852ea390c42ab2020aeeebcc42

Authored by jsong
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
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) {
... ...