vue中导出中导出Excel表格的实现代码表格的实现代码
项目中我们可能会碰到导出Excel文件的需求,这篇文章主要介绍了vue中导出Excel表格的实现代码,非常具有
实用价值,需要的朋友可以参考下
项目中我们可能会碰到导出Excel文件的需求,一般后台管理系统中居多,将table中展示的数据导出保存到本地。当然我们也
可以通过一些处理来修改要导出的数据格式,具体需求具体对待。
1、首先我们需要安装3个依赖,file-saver、xlsx和script-loader。
使用npm安装:
npm install file-saver xlsx -S
npm install script-loader -D
使用yarn安装:
yarn add file-saver xlsx -S
yarn add script-loader -D
2、在/src目录下新建一个vendor(名字也可自取)文件夹,存入Blob.js和Export2Excel.js文件。
Blob.js和Export2Excel.js文件地址:https://github.com/han6054/export-excel
当然也可以自行下载,或许会有版本的问题吧。
3、在/build/webpack.base.conf.js中新增一行代码(vendor的名字必须和第二步新建的文件夹名字相同)。
resolve: {
extensions: ['.js', '.vue', '.json'],
alias: {
'vue$': 'vue/dist/vue.esm.js',
'@': resolve('src'),
'vendor': path.resolve(__dirname, '../src/vendor') // 新增这一行
}
}
4、在vue项目中的使用。
/**
* excel导出
*/
exportTable () {
// this.DefaultData.exportExcelMax限制一下导出的总条数
if (this.totals <= this.DefaultData.exportExcelMax) {
this.$confirm('确定要导出当前<strong>' + this.totals + '</strong>条数据?', '提示', {
dangerouslyUseHTMLString: true,
confirmButtonText: '确定',
cancelButtonText: '取消'
}).then(() => {
this.getExpportData()
}).catch(() => {
})
} else {
this.$confirm('当前要导出的<strong>' + this.totals + '</strong>条数据,数据量过大,不能一次导出!<br/>建议分时间段导出所需数据。', '提示', {
dangerouslyUseHTMLString: true,
showCancelButton: false
}).then(() => {
}).catch(() => {
})
}
},
/**
* 对导出数据格式处理
*/
formatJson (filterVal, jsonData) {
return jsonData.map(v => filterVal.map(j => v[j]))
},
/**
* 导出的列表数据
*/
getExpportData: function () {
const loading = this.$loading({
lock: true,
text: '正在导出,请稍等......',
spinner: 'el-icon-loading',