Vue----二进制文件导出

Vue----二进制文件导出

当浏览器接收的是二进制的文件,需要导出时 ‘
1.传统的导出方式

const exportExcle = async () => {
  try {
    const response = await axios.get("/api/export",{
      // 返回二进制数据
      // blob 对象用来处理 二进制数据 response.data 返回的是二进制数据
      responseType: "blob"
    });
    // 这里的url 是为本例中的二进制数据 创建的临时的url 
     const url= window.URL.createObjectURL(new Blob([response.data]));
     // 这行是在文档中创建一个《<a> 元素,但是不会显示在页面上
     const link = document.createElement("a");
     // 将之前创建的临时的url的值 赋值给a连接的href中 这样链接就指向了excel文件数据
     link.href = url;
     // 这里设置了dowload 属性,是在告诉用户当点击这个链接时应该下载url指向的数据 而不是导航到该url
      link.setAttribute("download", "products.xlsx");
     // 将创建的链接添加到文档的body 中
     document.body.appendChild(link);
     // 通过编程的方式 来触发链接 开始下载
     link.click();
  } catch (error) {
    console.error("导出 Excel 失败:", error);
    // 处理错误情况,例如显示错误消息给用户
  }
};

2.引入FileSaver.js库
这里使用saveAs 函数来触发文件下载
首先 先安装 file-saver 库
pnpm install file-saver

// 引入FileSaver.js库
import { saveAs } from 'file-saver';

// 定义一个异步函数来处理导出操作
const exportExcel = async () => {
  try {
    // 发送GET请求到服务器端的导出API
    const response = await axios.get('/api/export', { responseType: 'blob' });
    // 使用FileSaver.js库的saveAs函数来保存文件
    // saveAs(new Blob([response.data], { type: 'application/vnd.ms-excel' }), '文件名.xlsx');
    // 或者
   saveAs(response.data, "products.xlsx");
  } catch (error) {
    // 如果有错误发生,打印错误信息到控制台
    console.error('导出 Excel 失败:', error);
    // 可以在这里添加更多的错误处理逻辑,例如显示错误消息给用户
  }
};
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值