如何使用ExcelJS在浏览器中将xlsx文件写入文件?

3

我正在尝试在浏览器中创建一个xlsx文件,并发现https://github.com/exceljs/exceljs非常强大。然而,我无法找到一种将我的xlsx对象保存到文件中的方法。可能需要使用Buffer,但如何从中生成文件呢?

const buffer = await workbook.xlsx.writeBuffer();

这个库可以在浏览器中生成文件,https://docs.sheetjs.com/docs/,但它不擅长构建复杂的字段。
2个回答

4
使用 FileSaver.js(https://github.com/eligrey/FileSaver.js/)来保存文件。
var FileSaver = require('file-saver');
const buffer = await workbook.xlsx.writeBuffer();
FileSaver.saveAs(new Blob([buffer]), “result.xlsx”);

2
你可以不使用 FileSaver.js 来实现。
创建 ExcelJS 的缓冲区:
let buffer = await workbook.xlsx.writeBuffer();

为SheetJS创建缓冲区:

let buffer = XLSX.write(workBook, { bookType: 'xlsx', compression: true, type: 'buffer' });

两个库都可以将内容保存到文件中:

        let blob = new Blob([buffer], { type: "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet" });
        let link = document.createElement('a');
        link.href = URL.createObjectURL(blob);
        link.download = "fName.xlsx";
        link.click();
        URL.revokeObjectURL(link.href);

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接