Angular中如何用JavaScript将Excel字节数组转为Blob和File对象
代码存在的问题
- 变量声明语法错误:
const.byteArray中const关键字和变量名之间不能使用.连接,应改为空格分隔的const byteArray - 括号未闭合:Uint8Array构造函数的参数处理逻辑最后缺少右括号
) - Blob构造函数用法错误:Blob为构造函数,需按照
new Blob(参数数组, 配置项)的格式调用,你写的new(Blob[byteArray])属于语法错误,会直接抛出运行异常 - 命名不规范:变量名
pdfResult语义和实际存储的Excel文件不符,建议调整为语义匹配的命名避免后续维护混淆
修正后代码
this.getFile().subscribe((response) => { // 处理base64编码的文件数据为Uint8Array const byteArray = new Uint8Array(atob(response.data).split('').map(char => char.charCodeAt(0))); // 正确构造Blob对象 const excelBlob = new Blob([byteArray], { type: "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet" }); // 转换为File对象 let file = new File([excelBlob], "sample.xlsx"); // 后续可处理file对象,例如下载、上传等 });
内容的提问来源于stack exchange,提问作者user13573775
相关产品推荐
相关产品推荐

