diff --git a/lib/stream/xlsx/worksheet-writer.js b/lib/stream/xlsx/worksheet-writer.js index bfd62b4fd..cb96e2ba6 100644 --- a/lib/stream/xlsx/worksheet-writer.js +++ b/lib/stream/xlsx/worksheet-writer.js @@ -187,6 +187,9 @@ WorksheetWriter.prototype = { // we _cannot_ accept new rows from now on this._rows = null; + if (!this.startedData) { + this._writeOpenSheetData(); + } this._writeCloseSheetData(); this._writeMergeCells(); diff --git a/spec/integration/data/test-issue-99.xlsx b/spec/integration/data/test-issue-99.xlsx new file mode 100644 index 000000000..643ee7168 Binary files /dev/null and b/spec/integration/data/test-issue-99.xlsx differ diff --git a/spec/integration/issues.spec.js b/spec/integration/issues.spec.js index ab97d232f..ccea87236 100644 --- a/spec/integration/issues.spec.js +++ b/spec/integration/issues.spec.js @@ -11,6 +11,23 @@ var TEST_XLSX_FILE_NAME = './spec/out/wb.test.xlsx'; describe('github issues', function() { + it('issue 99 - Too few data or empty worksheet generate malformed excel file', function() { + var testutils = require('../utils/index'); + var options = { + filename: './spec/integration/data/test-issue-99.xlsx', + useStyles: true, + useSharedStrings: true + }; + var wb = new Excel.stream.xlsx.WorkbookWriter(options); + var sheet = wb.addWorksheet("test"); + sheet.commit(); + wb.commit(); + + var wb2 = new Excel.Workbook(); + wb2.xlsx.readFile('./spec/integration/data/test-issue-99.xlsx'); + throw Error("check the file is correclty opened by excel"); + + }); it('issue 163 - Error while using xslx readFile method', function() { var wb = new Excel.Workbook(); return wb.xlsx.readFile('./spec/integration/data/test-issue-163.xlsx')
Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.
Alternative Proxies: