将页面中表格数据导出excel格式的文件(vue)

  近期由于项目需要,需要将页面中的表格数据导出excel格式的文件,折腾了许久,在网上各种百度,虽然资料不少,但是大都不全,踩了许多坑,总算是皇天不负有心人,最后圆满解决了。

  1、安装相关依赖(npm安装可能会出现某些错误,可以使用cnpm):

1
2
3
npm install file-saver --save   // 保存文件用
npm install xlsx --save    // 转二进制用
npm install script-loader --save-dev    // xlsx核心文件

  

  2、下载两个核心js文件,Blob.js和 Export2Excel.js  下载地址:Blob.js和 Export2Excel.js文件

  

  3、在src目录下新建vendor文件夹,将Blob.js和 Export2Excel.js放进去。

  4、更改webpack.base.conf.js配置。

  在resolve的alias里添加如下代码:

1
'vendor': path.resolve(__dirname, '../src/vendor')

  5、在需要导出excel格式文件的页面中写入以下两个方法,如:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
methods: {
    formatJson(filterVal, jsonData) {
    return jsonData.map(v => filterVal.map(j => v[j]))
  },
    export2Excel() {
      const _this = this
   require.ensure([], () => {
     const { export_json_to_excel } = require('../vendor/Export2Excel');
     const tHeader = ['ID', '封面', '小说名','二级分类','作者','进度','更新时间', '状态'];
     const filterVal = ['novelId', 'imageUrl', 'title', 'categoryName', 'author', 'completeStatus', 'updateTime', 'status'];
     const list = _this.dataList;
     const data = _this.formatJson(filterVal, list);
     export_json_to_excel(tHeader, data, '小说列表');
   })
    }
  }

  注意:tHeader表示表头的标题,filterVal表示表头的字段名,可通过点击事件调用导出方法。

1
<button type="primary" @click="export2Excel">导出</button>

  

posted @   江峰★  阅读(3689)  评论(2编辑  收藏  举报
编辑推荐:
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
阅读排行:
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?
点击右上角即可分享
微信分享提示