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 元素的点击事件,从而启动文件下载。
});
前端表格下载 文件流
最新推荐文章于 2024-11-07 19:48:34 发布
这段代码演示了如何从Base64编码的数据创建一个Excel文件并触发下载。首先,数据被解码为Uint8Array,然后构建一个Blob对象,最后利用HTML5的createObjectURL方法生成下载链接并模拟点击事件来触发下载。
摘要由CSDN通过智能技术生成