记录使用 xlsx 前端导出文件

记录使用 xlsx 前端导出文件

开发中会遇到表格导出文件的需求,可以使用 xlsx 和 file-saver 库完成

安装


npm i xlsx file-saver -S

基本使用


  // 假设你有一个数据数组
  const exportData = [
    { name: '张三', email: 'test@example.com', age: 20 },
    { name: '李四', email: 'test2@example.com', age: 25 },
    // ...更多数据
  ];
  // 将数组转换为工作表
  // 1.头部排放顺序
  const header = ['name', 'email', 'age'];
  // 2.头部名称
  const headerDisplay = { name: '名称', email: '邮箱', age: '年龄' };
  // 3.组成新数据
  const newData = [headerDisplay, ...exportData];
  // skipHeader = true 忽视原来的头
  const worksheet = XLSX.utils.json_to_sheet(newData, { header: header, skipHeader: true });

  // 创建工作簿并添加工作表
  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);

  // 使用saveAs下载文件
  saveAs(dataBlob, `data_${Date.now()}.xlsx`);

  // 清理
  window.URL.revokeObjectURL(blobUrl);

application/vnd.openxmlformats-officedocument.spreadsheetml.sheet 为 xlsx 类型 常见 MIME 类型列表

github地址

官网

中文文档

引用他人详细使用文章

  • 5
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要在Vue中使用xlsx导出Excel文件,需要进行以下步骤: 1. 首先,在使用的页面中导入xlsxxlsx-style库。可以使用以下代码导入: ``` import XLSX from 'xlsx'; import XLSX2 from 'xlsx-style'; ``` 引用 2. 找到`./node_modules/xlsx-style/dist/cpexcel.js`文件,并手动修改其中的代码。将`var cpt = require('./cpt' 'able');`替换为`var cpt = cptable;`。这样做是为了解决Vue xlsx导出表格时间不全的问题。引用 3. 进行基本设置,并调用相应的函数来导出Excel文件。可以使用以下代码作为基础设置: ``` var data = this.addRangeBorder(wb['!merges'], wb); // 合并项添加边框 var filedata = this.sheet2blob(data); // 将一个sheet转成最终的excel文件的blob对象 this.openDownloadDialog(filedata, '报表名字.xlsx'); // 下载报表 ``` 引用 通过以上步骤,你就可以在Vue中使用xlsx库来导出Excel文件了。记得根据自己的需求进行相应的调整和修改。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [vue框架使用xlsx导出excel表格](https://blog.csdn.net/qq_46372045/article/details/126779345)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值