vue导出excel

npm install xlsx file-saver

编写文档的时候
“file-saver”: “^2.0.5”,
“xlsx”: “^0.18.5”,
对应的版本号,如果新版本出了问题,就安装对应版本

import * as XLSX from 'xlsx';
import { saveAs } from 'file-saver';
exportToExcel() {
      // 假设你有一个表格数据数组
      const data = [
        ["姓名", "年龄", "职业"],
        ["Alice", 28, "Engineer"],
        ["Bob", 22, "Designer"]
      ];
 
      // 将数据转换为工作表
      const worksheet = XLSX.utils.aoa_to_sheet(data);
 
      // 创建工作簿并添加工作表
      const workbook = XLSX.utils.book_new();
      XLSX.utils.book_append_sheet(workbook, worksheet, 'Sheet1');
 
      // 生成Excel文件
      const excelBuffer = XLSX.write(workbook, { bookType: 'xlsx', type: 'array' });
 
      // 使用blob和FileReader创建一个Blob URL
      const dataBlob = new Blob([excelBuffer], { type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=UTF-8' });
      const blobUrl = window.URL.createObjectURL(dataBlob);
 
      // 使用FileSaver库保存文件
      saveAs(dataBlob, 'export.xlsx');
 
      // 清理
      window.URL.revokeObjectURL(blobUrl);
    }
在使用 Vue 框架进行数据导出Excel 文件时,可以通过 `Export2Excel` 工具来实现,该工具依赖于 `xlsx` 和 `file-saver` 库。以下是实现导出功能的具体方法。 ### 导出 Excel 文件的基本实现 在 Vue 项目中,可以通过以下步骤实现导出数据到 Excel 文件: 1. **安装依赖库** 首先需要安装 `xlsx` 和 `file-saver`,用于生成和保存 Excel 文件: ```bash npm install -S xlsx file-saver ``` 2. **创建 `Export2Excel.js` 文件** 在项目目录中创建 `Export2Excel.js` 文件,用于封装导出逻辑。该文件会调用 `xlsx` 和 `file-saver` 的 API 来生成 Excel 文件: ```javascript import { saveAs } from 'file-saver'; import XLSX from 'xlsx'; export function export_json_to_excel({ header, data, filename = 'exported_data', sheetName = 'sheet1', type = 'xlsx' }) { const ws = XLSX.utils.aoa_to_sheet([header, ...data]); const wb = XLSX.utils.book_new(); XLSX.utils.book_append_sheet(wb, ws, sheetName); const excelBuffer = XLSX.write(wb, { bookType: type, type: 'array' }); const blob = new Blob([excelBuffer], { type: 'application/octet-stream' }); saveAs(blob, `${filename}.${type}`); } ``` 3. **在 Vue 组件中调用导出方法** 在 Vue 组件中定义 `exportExcel` 方法,并通过 `require` 引入 `Export2Excel.js` 文件,实现数据导出: ```javascript methods: { exportExcel() { require.ensure([], () => { const { export_json_to_excel } = require('../excel/Export2Excel'); const tHeader = ['序号', '昵称', '姓名', '性别']; const filterVal = ['index', 'nickName', 'name', 'sex']; const list = this.tableData; const data = this.formatJson(filterVal, list); export_json_to_excel({ header: tHeader, data, filename: '用户信息表' }); }); }, formatJson(filterVal, jsonData) { return jsonData.map(v => filterVal.map(j => v[j])); } } ``` ### 多级表头的导出 如果需要导出包含多级表头的 Excel 文件,可以手动构造表头数据,例如: ```javascript const multiHeader = [ ['用户信息', '', '联系方式'], ['序号', '昵称', '姓名', '性别', '电话', '邮箱'] ]; ``` 然后,在 `Export2Excel.js` 中调整 `XLSX.utils.aoa_to_sheet` 方法,将多级表头传递进去: ```javascript const ws = XLSX.utils.aoa_to_sheet(multiHeader); ``` ### 导出多个 Sheet 页 若需要导出多个 Sheet 页,可以在 `Export2Excel.js` 中添加多个工作表: ```javascript const ws1 = XLSX.utils.aoa_to_sheet([header1, ...data1]); const ws2 = XLSX.utils.aoa_to_sheet([header2, ...data2]); XLSX.utils.book_append_sheet(wb, ws1, 'Sheet1'); XLSX.utils.book_append_sheet(wb, ws2, 'Sheet2'); ``` ### 数据格式化处理 在导出前,可以对数据进行格式化处理,例如将数字表示的性别转换为“男”或“女”: ```javascript list.forEach(element => { if (element.sex === 1) { element.sex = "男"; } else { element.sex = "女"; } }); ``` ### 总结 通过上述方法,可以在 Vue 项目中实现数据导出Excel 文件,支持单级表头、多级表头以及多 Sheet 页的导出需求。结合 `xlsx` 和 `file-saver` 库,可以灵活地处理各种导出场景,提升用户体验[^1]。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

菜冬眠。

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

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

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

打赏作者

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

抵扣说明:

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

余额充值