1、引入
import FileSaver from 'file-saver'
import XLSX2 from 'xlsx'
import XLSX from "xlsx-style";
2、报错
安装npm install –save xlsx-style会报错:
This relative module was not found: ./cptable in ./node_modules/xlsx-style@0.8.13@xlsx-style/dist/cpexcel.js
解决 方法一:
可以直接修改源代码: 在\node_modules\xlsx-style\dist\cpexcel.js 807行;
将var cpt = require(’./cpt’ + ‘able’);
改成var cpt = cptable;
解决 方法二:
vue.config.js文件中修改:
module.exports = {
lintOnSave: false,
css: {
loaderOptions: {
sass: {
data: @import "~@/styles/variables.scss";
}
}
},
chainWebpack: config => {
//在 chainWebpack 添加下面的一段代码
config.externals({
“./cptable”: “var cptable” });**
},
devServer: {
}
};
3、使用
setExport2Excel() {
const $e = this.$refs['listTable'].$el
let $table = $e.querySelector('.el-table__fixed')
if (!$table) {
$table = $e
}
const wb = XLSX2.utils.table_to_sheet($table, {
raw: true
})
console.log(wb)
if (!wb['!merges']) {
this.$message.warning('无法导出:报表无数据');
return
}
for (var i = 0; i < 11; i++) {
wb["!cols"