导出excel 前端

本文介绍了在Vue3项目中安装并解决xlsx库导入错误的方法,强调了在使用file-saver导出文件时指定responseType为blob以及正确引入库的重要性。作者提供了详细的代码示例以完成报表的导出操作。
摘要由CSDN通过智能技术生成

谨以此记录导出功能,使用的是 file-saver

1、安装xlsx库

npm install xlsx 

2、安装file-saver库

npm install file-saver

3、在需要使用的页面引入,vue2和vue3的引入方式是不同的,引入方式不同是因为:

在vue3+vite的项目中,使用xlsx,安装使用后控制台报错:SntaxError: The requested module ‘/node_modules/.vite/deps/xlsx.js?v=3067d777’ does not provide an export named ‘default’

可能是因为:引入的库没有使用export default来导出,而是直接使用export导出一些属性和方法,所以使用通过别名引入的方式引入【import * as 别名 from ‘xxx’】

//vue2引入:
import FileSaver from "file-saver";
import XLSX from "xlsx";

//vue3引入:
import * as FileSaver from "file-saver";
import * as XLSX from "xlsx";

4、接口写法:需要指定类型 responseType:'blob' ,因为拿到的文件是文件流的形式

// 导出报表列表;
export const exportListApi = (params) =>
  request.get(
    `report/export?beginTime=${params.beginTime}&endTime=${params.endTime}&starterPerson=${params.starterPerson}`,
    {responseType:'blob'}
  );

5、使用:直接使用 saveAs 进行导出, saveAs 中有两个参数,第一个是返回的 blob 文件,第二个是要导出的文件名

// 导出报表
const toExport = async () => {
  const res = await exportListApi(searchForm.value);
  saveAs(
    res,
    `${searchForm.value.beginTime}至${searchForm.value.endTime}报表.xlsx`
  );
};

导出完成

  • 10
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值