如何在浏览器中使用ExcelJS将xlsx对象写入本地文件?
浏览器中使用ExcelJS导出XLSX文件到本地
你已经通过const buffer = await workbook.xlsx.writeBuffer();拿到了文件的Buffer数据,接下来只需两步就能在浏览器中触发下载:
将Node.js风格的Buffer转换为浏览器支持的Blob对象
// 指定XLSX文件的MIME类型 const blob = new Blob([buffer], { type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet' });创建临时下载链接并触发浏览器下载
const downloadUrl = window.URL.createObjectURL(blob); const link = document.createElement('a'); link.href = downloadUrl; link.download = '自定义文件名.xlsx'; // 替换成你想要的文件名 document.body.appendChild(link); link.click(); // 清理临时资源,避免内存泄漏 window.URL.revokeObjectURL(downloadUrl); document.body.removeChild(link);
补充说明:
- ExcelJS的
writeBuffer()返回的是Node.js环境的Buffer,浏览器无法直接识别,转成Blob是关键步骤 - SheetJS虽然浏览器下载流程更简便,但在复杂表格结构(如单元格合并、样式配置、多Sheet复杂关联)的支持上不如ExcelJS,适合不同场景需求
内容的提问来源于stack exchange,提问作者Kirill Novikov
相关产品推荐
相关产品推荐

