diff --git a/package.json b/package.json index 5107a3d..225d392 100644 --- a/package.json +++ b/package.json @@ -36,6 +36,7 @@ "echarts-gl": "^2.0.8", "echarts-wordcloud": "^2.0.0", "element-ui": "2.15.6", + "exceljs": "^4.4.0", "file-saver": "2.0.1", "fuse.js": "3.4.4", "highlight.js": "^11.2.0", @@ -65,6 +66,7 @@ "vuedraggable": "^2.20.0", "vuex": "3.6.0", "vxe-table": "^3.7.8", + "vxe-table-plugin-export-xlsx": "legacy", "xe-utils": "^3.5.11", "xlsx": "^0.18.5", "zradmin": "file:" diff --git a/src/main.js b/src/main.js index 910986b..42584d5 100644 --- a/src/main.js +++ b/src/main.js @@ -46,7 +46,11 @@ import * as echarts from 'echarts' import ECharts from 'vue-echarts' // VXE-Table相关组件 import VXETable from 'vxe-table' - +import VXETablePluginExportXLSX from 'vxe-table-plugin-export-xlsx' +import ExcelJS from 'exceljs' +VXETable.use(VXETablePluginExportXLSX, { + ExcelJS, +}) import 'vxe-table/lib/style.css' import dataV from '@jiaminghi/data-view' @@ -108,6 +112,7 @@ Vue.use(Element, { }) Vue.use(VXETable) + Vue.use(dataV) Vue.use(AFTableColumn) DictData.install() diff --git a/src/views/qualityManagement/gp12/report/QualityReport.vue b/src/views/qualityManagement/gp12/report/QualityReport.vue index a33ec03..4e21808 100644 --- a/src/views/qualityManagement/gp12/report/QualityReport.vue +++ b/src/views/qualityManagement/gp12/report/QualityReport.vue @@ -22,12 +22,14 @@ + + @@ -43,6 +45,7 @@ 搜索 重置 + 导出 @@ -58,8 +61,9 @@ + :column-config="{ resizable: true }" :header-cell-style="headerCellStyle" :export-config="exportConfig" + :merge-cells="mergeCells" :cell-style="cellStyle" @menu-click="contextMenuClickEvent" + :menu-config="tableMenu"> @@ -198,6 +202,26 @@ export default { }, // 总记录数 total: 0, + exportConfig: { + types: ['xlsx'], + remote: false, + original: false, + isPrint: false, + mode: 'current', + message: true, + sheetMethod({ options, worksheet }) { + if (options.mergeCells && options.mergeCells.length) { + options.mergeCells.forEach(merge => { + worksheet.mergeCells( + merge.row + 1, // 起始行(从1开始) + merge.col + 1, // 起始列(从1开始) + merge.row + merge.rowspan, // 结束行 + merge.col + merge.colspan // 结束列 + ); + }); + } + } + } }; }, created() { @@ -382,6 +406,20 @@ export default { fontWeight: '600', } }, + handleExport() { + const $table = this.$refs.xTable + if ($table) { + $table.exportData() + // 设置导出类型为 xlsx + // $table.exportData({ + // type: 'xlsx', + // }).then(() => { + // console.log('导出成功'); + // }).catch(error => { + // console.error('导出失败:', error); + // }); + } + } }, };