前端表格下载 文件流

这段代码演示了如何从Base64编码的数据创建一个Excel文件并触发下载。首先,数据被解码为Uint8Array,然后构建一个Blob对象,最后利用HTML5的createObjectURL方法生成下载链接并模拟点击事件来触发下载。
摘要由CSDN通过智能技术生成
this.Examples(data).then(res => {
  var bstr = atob(res.data);//使用 atob 方法对数据进行 Base64 解码,将解码后的数据存储在变量 bstr 中
  var n = bstr.length;
  var u8arr = new Uint8Array(n);//获取解码后数据 bstr 的长度,并用该长度创建一个新的 Uint8Array 对象,命名为 u8arr。
 
  while (n--) {
    u8arr[n] = bstr.charCodeAt(n);//使用循环,逐个遍历 bstr 中的字符,并将其转换为 Uint8 类型的数值,存储在 u8arr 中。
  }
  const blob = new Blob([u8arr], {
    type: "application/xlsx"//使用 u8arr 创建一个新的 Blob 对象,设置其 MIME 类型为 "application/xlsx"(Excel 文件)。
  });

  const fileOfBlob = new File(
    [blob],
    `${new Date().getTime()}.xlsx`//使用 Blob 对象 u8arr 创建一个新的 File 对象,其中包含 Blob 数据和一个根据当前时间戳生成的唯一文件名。
  );
  const aLink = document.createElement("a");//创建一个新的锚点元素 aLink,用于创建下载链接。
  aLink.href = URL.createObjectURL(fileOfBlob);//将 aLink 的 href 属性设置为临时对象 URL,表示 fileOfBlob 文件。
  aLink.setAttribute(
    "download",
    `${this.parseTime(new Date())}.xlsx`//使用 setAttribute 方法设置 aLink 的 download 属性,指定下载文件的文件名。
  );
  document.body.appendChild(aLink);//将 aLink 元素添加到文档的 <body> 元素中。
  aLink.click();//通过程序触发 aLink 元素的点击事件,从而启动文件下载。
});

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值