vue将表格数据导出为Excel

1 篇文章 0 订阅

1.npm先安装三个包:

npm install file-saver --save
npm install xlsx --save
npm install script-loader --save-dev

2.下载两个js文件:

链接:https://pan.baidu.com/s/1X0CCKwnOcv4U9J6unpZNEA 密码:iidz
将两个js文件放入src文件夹内,最好新建空白文件夹。

3.修改js文件
这里写图片描述

如图,将红框中的路径修改你的Blob.js文件实际路径。不然会报错。

4.数据

export default{
    name: 'app',
    data(){
        return{
            columns: [
              {
                key: 'createDate', //导出数据的表头字段,对应导出的表格数据的键名
                value: '日期' //Excel表中对应的表头描述
              },
              {
                key: 'payUid',
                value: '支付方(UID)'
              }, {
                key: 'priceStr',
                value: '支付额'
              }, {
                key: 'coinName',
                value: '支付币种'
              }
            ],
            exportData: [], //导出数据
        }
    },
    methods:{
        exports(){
        //导出数据为Excel
            const {
              columns,
              exportData
            } = this;
            require.ensure([], () => {
              const {
                export_json_to_excel
              } = require('./../../excel/Export2Excel'); //  ---require 括号里面是相对路径其实是引用  Export2Excel.js
              const tHeader = []; //  ----tHeader 数组里面放的是字段的对应名
              const filterVal = [];   // -----filterVal  字段对应的值
              columns && columns.map(data => {
                tHeader.push(data.value);
                filterVal.push(data.key);
              });
              const list = exportData; //                  ----对应的json数组
              const data = this.formatJson(filterVal, list);
              export_json_to_excel(tHeader, data, '支付明细');
           })
        },
        formatJson(filterVal, jsonData) {
            return jsonData.map(v => filterVal.map(j => v[j]))
        }
}
  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Vue3本身并没有提供导出Excel的功能,但可以通过第三方库实现。 以下是一个使用js-xlsx库的示例: 1. 安装js-xlsx ```bash npm install xlsx ``` 2. 在组件中引入js-xlsx ```javascript import XLSX from 'xlsx'; ``` 3. 编写导出Excel的方法 ```javascript exportExcel() { // 构造表格数据,格式为二维数组 const data = [ ['姓名', '年龄', '性别'], ['张三', 18, '男'], ['李四', 20, '女'], ['王五', 22, '男'] ]; // 创建工作簿对象 const workbook = XLSX.utils.book_new(); // 构造工作表对象 const worksheet = XLSX.utils.aoa_to_sheet(data); // 将工作表添加到工作簿中 XLSX.utils.book_append_sheet(workbook, worksheet, '表格1'); // 导出Excel文件 XLSX.writeFile(workbook, '表格.xlsx'); } ``` 4. 在模板中添加导出按钮 ```html <template> <button @click="exportExcel">导出Excel</button> </template> ``` 完整代码如下: ```javascript <template> <button @click="exportExcel">导出Excel</button> </template> <script> import XLSX from 'xlsx'; export default { methods: { exportExcel() { // 构造表格数据,格式为二维数组 const data = [ ['姓名', '年龄', '性别'], ['张三', 18, '男'], ['李四', 20, '女'], ['王五', 22, '男'] ]; // 创建工作簿对象 const workbook = XLSX.utils.book_new(); // 构造工作表对象 const worksheet = XLSX.utils.aoa_to_sheet(data); // 将工作表添加到工作簿中 XLSX.utils.book_append_sheet(workbook, worksheet, '表格1'); // 导出Excel文件 XLSX.writeFile(workbook, '表格.xlsx'); } } } </script> ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

废柴前端

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值