使用exceljs和nodejs下载的xlsx文件正在libreOffice中打开,但在excel 2007中显示为已损坏

时间:2018-08-23 14:23:11

标签: node.js xlsx exceljs

这是我的代码。它会创建一个xlsx文件,该文件在libreoffice中打开,但在excel-2007中显示为损坏

还要workbook.xlsx.write(response)下载.zip文件

请帮助。

var Excel = require("exceljs");
var express = require("express");
var bodyParser = require("body-parser");

var app = express();

app.use(bodyParser.urlencoded({ extended: false }));

app.use(bodyParser.json());

app.all("/getExcel", function(req, res) {

var workbook = new Excel.Workbook();
var worksheet = workbook.addWorksheet("Discography");

worksheet.columns = [{ header: "Album", key: "album" }, { header: "Year", key: "year" }];

worksheet.addRow({ album: "Taylor Swift", year: 2006 });

worksheet.addRow(["Fearless", 2008]);

var rows = [["Speak Now", 2010], { album: "Red", year: 2012 }];
worksheet.addRows(rows);

worksheet.getCell("A6").value = "1989";
worksheet.getCell("B6").value = 2014;

workbook.xlsx.writeFile('taylor_swift.xlsx').then(fenter code hereunction() {
console.log("saved");
});
});

2 个答案:

答案 0 :(得分:0)

尝试在MSO中创建模板文件,然后使用exceljs打开它。对于我来说,这种技巧通常效果很好。

答案 1 :(得分:0)

我也有像你这样的问题。 使用模板XLSX文件->使用exceljs nodejs填充内容->使用libreOffice转换为PDF文件。 但无法显示所有工作表。

  

exceljs:添加新工作表,然后默认为{状态:“隐藏”}

我找到了原因:

var sheet2 = workbook.addWorksheet('S2',{state: 'visible'});