当我尝试保存使用此repo创建的excel文件时:https://github.com/guyonroche/exceljs#create-a-workbook
在它运行的本地主机上,文件已创建并可用于打开和读取和编辑。
但是当在我的VPS上做同样的事情时,.then
函数和.catch
函数只返回任何内容。
该文件实际上是在服务器中创建的,但是在尝试打开它时出现了下一个错误:
The file format or file extension is not valid. Verify that the file has not been corrupted and that the file extension matches the format of the file.
这是代码:
app.get("/excel/createDemoExcel", function(req, res, next) {
var workbook = new Excel.Workbook();
workbook.creator = 'mydomain.com';
workbook.lastModifiedBy = 'The name of the Team';
workbook.created = new Date();
workbook.modified = new Date();
workbook.rightToLeft = true;
let sheetParams = {
views:[
{
xSplit: 1, ySplit:1
}
],
pageSetup: {
paperSize: 9,
orientation:'landscape'
},
views: [
{
rightToLeft: true
}
]
};
workbook.addWorksheet('mySheet', sheetParams);
let mySheet = workbook.getWorksheet('mySheet');
mySheet.columns = [
{
width:20,
},
{
width:20
},
{
width:30
}
];
mySheet.addRow(["Raz", "Buchnik", "0509921014"]);
mySheet.addRow(["Amos", "Fadlon", "0508555550"]);
mySheet.addRow(["Dgani", "Lavi", "0501231231"]);
mySheet.getRow(1).font = {
size: 16,
bold: true,
};
mySheet.getCell("A5").value = "Yes";
mySheet.getCell("C5").value = "Yes1";
mySheet.mergeCells("A5:C5");
console.log("Trying to export");
workbook.xlsx.writeFile("src/excelUploads/mySheet.xlsx")
.then(function() {
console.log("Exported");
res.end("Excel");
}).catch(function(err) {
console.log("Errored");
});
});
也许有人比较熟悉?
我试过设置目录777但仍无法正常工作。
谢谢!
答案 0 :(得分:0)
有点烦人的是他们没有说清楚,但是对于某些文件类型有一个单独的模块。根据GitHub README.md,您可以安装此扩展。它们提供了一个安装程序脚本,所以只需:
curl https://raw.githubusercontent.com/guyonoche/exceljs-formats/master/install.sh -L | sudo bash
希望这会有所帮助。我自己真的很困惑这个错误。
答案 1 :(得分:0)
您可能想降级您的Exceljs版本。请参阅以下主题:https://github.com/exceljs/exceljs/issues/883
我还遇到了一个问题,它在本地运行良好,但在服务器上却无法运行。将该软件包降级到1.10.0,一切现在都可以在服务器上使用。