-
Notifications
You must be signed in to change notification settings - Fork 1.9k
Closed
Description
Since version 0.2.10, exceljs fails to write xlsx files using the stream API with the following error:
Unhandled rejection Error: append: input source must be valid Stream or Buffer instance
at Archiver.append (/home/bugreport/backend/node_modules/archiver/lib/core.js:333:24)
at /home/bugreport/backend/node_modules/exceljs/lib/stream/xlsx/workbook-writer.js:251:18
at Promise._execute (/home/bugreport/backend/node_modules/bluebird/js/release/debuggability.js:272:9)
at Promise._resolveFromExecutor (/home/bugreport/backend/node_modules/bluebird/js/release/promise.js:475:18)
at new Promise (/home/bugreport/backend/node_modules/bluebird/js/release/promise.js:77:14)
at Object.WorkbookWriter.addSharedStrings (/home/bugreport/backend/node_modules/exceljs/lib/stream/xlsx/workbook-writer.js:250:14)
at /home/bugreport/backend/node_modules/exceljs/lib/stream/xlsx/workbook-writer.js:131:16
at tryCatcher (/home/bugreport/backend/node_modules/bluebird/js/release/util.js:16:23)
at Promise._settlePromiseFromHandler (/home/bugreport/backend/node_modules/bluebird/js/release/promise.js:504:31)
at Promise._settlePromise (/home/bugreport/backend/node_modules/bluebird/js/release/promise.js:561:18)
at Promise._settlePromise0 (/home/bugreport/backend/node_modules/bluebird/js/release/promise.js:606:10)
at Promise._settlePromises (/home/bugreport/backend/node_modules/bluebird/js/release/promise.js:685:18)
at Promise._fulfill (/home/bugreport/backend/node_modules/bluebird/js/release/promise.js:630:18)
at Promise._resolveCallback (/home/bugreport/backend/node_modules/bluebird/js/release/promise.js:447:14)
at Promise._settlePromiseFromHandler (/home/bugreport/backend/node_modules/bluebird/js/release/promise.js:516:17)
at Promise._settlePromise (/home/bugreport/backend/node_modules/bluebird/js/release/promise.js:561:18)
This is the code to reproduce the problem:
const fs = require('fs');
const Excel = require('exceljs');
let outStream = fs.createWriteStream('/tmp/aaa', {flags: 'w'})
let options = {
stream: outStream,
useStyles: true,
useSharedStrings: true
};
let workbook = new Excel.stream.xlsx.WorkbookWriter(options);
let worksheet = workbook.addWorksheet('test');
let newrow = worksheet.addRow(['hello']);
newrow.commit();
worksheet.commit();
workbook.commit();If you do not add any row, it works fine.
Also, worked fine on 0.2.9 and previous versions.
Metadata
Metadata
Assignees
Labels
No labels