Skip to content

Commit

Permalink
Merge pull request #423 from peakon/fix/numbers
Browse files Browse the repository at this point in the history
Don't break when attempting to import a zip file that's not an Excel file (eg. .numbers)
  • Loading branch information
guyonroche committed Nov 20, 2017
2 parents 3b050c5 + 0b34f96 commit 8300ebb
Show file tree
Hide file tree
Showing 4 changed files with 14 additions and 3 deletions.
4 changes: 2 additions & 2 deletions lib/xlsx/xform/book/workbook-xform.js
Expand Up @@ -142,7 +142,7 @@ utils.inherits(WorkbookXform, BaseXform, {
},

reconcile: function(model) {
var rels = model.workbookRels.reduce(function(map, rel) {
var rels = (model.workbookRels || []).reduce(function(map, rel) {
map[rel.Id] = rel;
return map;
}, {});
Expand All @@ -152,7 +152,7 @@ utils.inherits(WorkbookXform, BaseXform, {
var worksheet;
var index = 0;

model.sheets.forEach(function(sheet) {
(model.sheets || []).forEach(function(sheet) {
var rel = rels[sheet.rId];
if (!rel) {
return;
Expand Down
2 changes: 1 addition & 1 deletion lib/xlsx/xlsx.js
Expand Up @@ -108,7 +108,7 @@ XLSX.prototype = {
sharedStrings: model.sharedStrings,
media: model.media,
mediaIndex: model.mediaIndex,
date1904: model.properties.date1904,
date1904: model.properties && model.properties.date1904,
drawings: model.drawings,
};
model.worksheets.forEach(function(worksheet) {
Expand Down
Binary file added spec/integration/data/numbers.numbers
Binary file not shown.
11 changes: 11 additions & 0 deletions spec/integration/worksheet.spec.js
Expand Up @@ -3,6 +3,7 @@
var expect = require('chai').expect;
var verquire = require('../utils/verquire');
var testutils = require('./../utils/index');
var path = require('path');

var Excel = verquire('excel');
var Range = verquire('doc/range');
Expand Down Expand Up @@ -619,4 +620,14 @@ describe('Worksheet', function() {
expect(ws.getCell('C3').numFmt).to.equal(testutils.styles.numFmts.numFmt1);
});
});

describe('When passed a non-Excel file', function() {
it('Should not break when importing a .numbers file', function() {
return new Excel.Workbook().xlsx.readFile(path.resolve(__dirname, 'data', 'numbers.numbers'))
.then(function(workbook) {
expect(workbook).to.have.property('worksheets');
expect(workbook.worksheets).to.have.length(0);
});
});
});
});

0 comments on commit 8300ebb

Please sign in to comment.