licp
2024-11-27 a06fc9ad238199d601ae86795188151f56fdd3fe
src/components/tool/file-preview.vue
@@ -67,7 +67,6 @@
import VueOfficeExcel from '@vue-office/excel'
//引入相关样式
import '@vue-office/excel/lib/index.css'
import * as XLSX from "xlsx";
export default {
  components: {
    VueOfficeDocx,
@@ -156,6 +155,7 @@
            column:[]
          }
          obj.tableData = this.formatCSVToTable(m.content.replaceAll('null',' '))
          // .replaceAll('MIN','=MIN').replaceAll('MAX','=MAX').replaceAll('AVERAGE','=AVERAGE')
          for (let item in obj.tableData[0]) {
            obj.column.push({
              label: item,
@@ -165,11 +165,6 @@
          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)
      })
@@ -210,28 +205,6 @@
        }
      }
      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"]');