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