From e6c3fccc9e412e79964a6dc2dae4c3da0c80095c Mon Sep 17 00:00:00 2001
From: licp <lichunping@guanfang.com.cn>
Date: 星期二, 26 十一月 2024 15:22:28 +0800
Subject: [PATCH] 完成检验下单、检验任务、报告生成变更

---
 src/components/tool/file-preview.vue |   30 +++++++++++++++++++++++++++++-
 1 files changed, 29 insertions(+), 1 deletions(-)

diff --git a/src/components/tool/file-preview.vue b/src/components/tool/file-preview.vue
index d3c4fd5..38ea63e 100644
--- a/src/components/tool/file-preview.vue
+++ b/src/components/tool/file-preview.vue
@@ -67,6 +67,7 @@
 import VueOfficeExcel from '@vue-office/excel'
 //寮曞叆鐩稿叧鏍峰紡
 import '@vue-office/excel/lib/index.css'
+import * as XLSX from "xlsx";
 export default {
   components: {
     VueOfficeDocx,
@@ -164,6 +165,11 @@
           return obj
         })
         this.csvList = arr
+        // console.log(333,this.csvList)
+        this.csvList.forEach(m=>{
+          console.log(this.calculateFormulas(m.column,m.tableData))
+          m.tableData = this.calculateFormulas(m.column,m.tableData)
+        })
       }).catch( err => {
         console.log(err)
       })
@@ -205,6 +211,28 @@
       }
       return result
     },
+    /**
+     * 璁$畻琛ㄦ牸鍏紡
+     *
+     * @param tableHeaders 琛ㄥご鏁版嵁
+     * @param tableData 琛ㄦ牸鏁版嵁
+     */
+    calculateFormulas(tableHeaders,tableData){
+      // 鐢熸垚 Excel Sheet 鏍煎紡
+      const sheetData = [tableHeaders.map(m=>m.label), ...tableData.map((row) => Object.values(row))];
+      const worksheet = XLSX.utils.aoa_to_sheet(sheetData);
+      // 璁$畻鍏紡
+      XLSX.utils.sheet_add_aoa(worksheet, [], { origin: -1 });
+      const newSheetData = XLSX.utils.sheet_to_json(worksheet, { header: 1 });
+      // 鏇存柊琛ㄥご鍜岃〃鏍兼暟鎹�
+      tableData = newSheetData.slice(1).map((row) =>
+        row.reduce((obj, value, index) => {
+          obj[newSheetData[0][index]] = value;
+          return obj;
+        }, {})
+      );
+      return tableData
+    },
     resetStyle(){
       const elements = document.querySelectorAll('[style*="pt"]');
       for (const element of elements) {
@@ -213,7 +241,7 @@
           element.setAttribute('style', style.replace(/pt/g, 'px'));
         }
       }
-    }
+    },
   }
 }
 </script>

--
Gitblit v1.9.3