Загруженный файл xlsx с использованием exceljs и nodejs открывается в libreOffice, но показывает повреждение в excel 2007

Это мой код. Он создает файл 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");
});
});

person Abhinav Ankur    schedule 23.08.2018    source источник
comment
сохраните его из libreoffice, и если excel примет этот ввод, сравните два файла в шестнадцатеричном редакторе.   -  person split    schedule 23.08.2018


Ответы (2)


Попробуйте создать файл шаблона в MSO, а затем открыть его с помощью exceljs. Как по мне, этот трюк обычно работает нормально.

person Iliya Zubakin    schedule 31.08.2018

У меня тоже есть проблемы, как у тебя. Используя файл шаблона XLSX-> заполните содержимое с помощью exceljs nodejs -> конвертируйте в файл PDF с помощью libreOffice. Но он не может отображать все листы.

exceljs: добавить новый лист, тогда по умолчанию {state: 'hidden'}

Я нашел причину:

var sheet2 = workbook.addWorksheet('S2',{state: 'visible'});
person Tính Ngô Quang    schedule 21.01.2019