javascript - 使用 exceljs 节点包创建 xlsx 文件
问题描述
我正在使用 exceljs 3.8 创建新的 xlsx 文件,但由于某些原因下面的代码不起作用?
createNewExcelFile: function (excelFilePath) {
//excelFilePath: Provide path and file name for excel file
// load exceljs module
var workbook = new exceljs.Workbook(); //create object of workbook
//add sheet to workbook
var newSheet = workbook.addWorksheet('TestData');
//use write file function to create new file
workbook.xlsx.writeBuffer(excelFilePath)
.then(function () {
console.log("excel file created successfully");
});
}
createNewExcelFile('new1.xlsx');
console.log 正在记录“成功创建 excel 文件”,但我没有看到任何文件被创建的地方。
解决方案
1.你应该使用writeFile
而不是writeBuffer
workbook.xlsx.writeFile(excelFilePath);
(来源:https ://github.com/exceljs/exceljs#writing-xlsx )
2.xlsx-renderer
我还建议使用xlsx-renderer
which 提供基于 Template 和 ViewModel 生成 excel 文件。
模板 + ViewModel = Preaty XLSX
虚拟机:
{
"projects": [
{
"name": "ExcelJS",
"role": "maintainer",
"platform": "github",
"link": "https://github.com/exceljs/exceljs",
"stars": 5300,
"forks": 682
},
{
"name": "xlsx-import",
"role": "owner",
"platform": "github",
"link": "https://github.com/siemienik/xlsx-import",
...
这个库非常适合您的代码,因为它也基于 ExcelJs。
(来源:https ://github.com/Siemienik/xlsx-renderer/tree/master/tests/integration/data/Renderer009-ForEach-Average )
编辑:(29.04.2020) 在实践中,它被以下代码使用:
const result = await renderer.renderFromFile('./report-template.xlsx', { awesome:"Oh yeah!", items:[/*...*/]});
await result.xlsx.writeFile('./my-awesome-report.xlsx');
推荐阅读
- wordpress - Wordpress + nginx + ALB + SSL -> 链接问题
- python - ModuleNotFoundError:没有名为“tensorflow.contrib.framework”的模块
- objective-c - 将 NSBezierPath 添加到 NSView,以便将子视图添加到 NSWindow
- c - 为什么在非常大的浮点数下“快速平方根平方根”比 1/sqrt() 慢?
- docker - 从一个 Dockerized Go 服务获取对其他 Dockerized Go 服务的查询
- excel - Excel:使用不同长度的多个数据集时的 AND 公式
- javascript - 无法从绑定函数访问对象变量,或从未绑定函数访问内部方法
- excel - 运行时错误 1004:方法“另存为”Fail_of object“工作簿”失败
- spring-boot - @JsonProperty("test_id") 在 springboot 中不起作用 @GetMapping
- excel - For循环每隔5行格式化单元格