Skip to content

Commit

Permalink
version bump 0.17.0
Browse files Browse the repository at this point in the history
- Explicit errors on inconsistent XLS records
- DBF cap worksheet to 1<<20 rows
  • Loading branch information
LivingInSyn committed May 13, 2021
1 parent 6c5db36 commit 3542d62
Show file tree
Hide file tree
Showing 24 changed files with 1,772 additions and 112 deletions.
1 change: 1 addition & 0 deletions .npmignore
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,7 @@ tmp
.gitattributes
.fossaignore
.spelling
.eslintignore
.eslintrc
.jshintrc
CONTRIBUTING.md
Expand Down
1 change: 1 addition & 0 deletions bin/xlsx.njs
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
/* vim: set ts=2 ft=javascript: */
var n = "xlsx";
var X = require('../');
try { X = require('../xlsx.flow'); } catch(e) {}
require('exit-on-epipe');
var fs = require('fs'), program = require('commander');
program
Expand Down
2 changes: 1 addition & 1 deletion bits/01_version.js
Original file line number Diff line number Diff line change
@@ -1 +1 @@
XLSX.version = '0.16.9';
XLSX.version = '0.17.0';
2 changes: 1 addition & 1 deletion bits/22_xmlutils.js
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
var XML_HEADER = '<?xml version="1.0" encoding="UTF-8" standalone="yes"?>\r\n';
var attregexg=/([^"\s?>\/]+)\s*=\s*((?:")([^"]*)(?:")|(?:')([^']*)(?:')|([^'">\s]+))/g;
var tagregex=/<[\/\?]?[a-zA-Z0-9:_-]+(?:\s+[^"\s?>\/]+\s*=\s*(?:"[^"]*"|'[^']*'|[^'">\s=]+))*\s?[\/\?]?>/mg;
var tagregex=/<[\/\?]?[a-zA-Z0-9:_-]+(?:\s+[^"\s?>\/]+\s*=\s*(?:"[^"]*"|'[^']*'|[^'">\s=]+))*\s*[\/\?]?>/mg;

if(!(XML_HEADER.match(tagregex))) tagregex = /<[^>]*>/g;
var nsregex=/<\w*:/, nsregex2 = /<(\/?)\w+:/;
Expand Down
5 changes: 4 additions & 1 deletion bits/28_binstructs.js
Original file line number Diff line number Diff line change
Expand Up @@ -177,7 +177,10 @@ var write_UncheckedRfX = write_RfX;

/* [MS-XLS] 2.5.342 ; [MS-XLSB] 2.5.171 */
/* TODO: error checking, NaN and Infinity values are not valid Xnum */
function parse_Xnum(data/*::, length*/) { return data.read_shift(8, 'f'); }
function parse_Xnum(data/*::, length*/) {
if(data.length - data.l < 8) throw "XLS Xnum Buffer underflow";
return data.read_shift(8, 'f');
}
function write_Xnum(data, o) { return (o || new_buf(8)).write_shift(8, data, 'f'); }

/* [MS-XLSB] 2.4.324 BrtColor */
Expand Down
2 changes: 1 addition & 1 deletion bits/39_xlsbiff.js
Original file line number Diff line number Diff line change
Expand Up @@ -697,7 +697,7 @@ function parse_Lbl(blob, length, opts) {
var name = parse_XLUnicodeStringNoCch(blob, cch, opts);
if(flags & 0x20) name = XLSLblBuiltIn[name.charCodeAt(0)];
var npflen = target - blob.l; if(opts && opts.biff == 2) --npflen;
var rgce = target == blob.l || cce === 0 ? [] : parse_NameParsedFormula(blob, npflen, opts, cce);
var rgce = (target == blob.l || cce === 0 || !(npflen > 0)) ? [] : parse_NameParsedFormula(blob, npflen, opts, cce);
return {
chKey: chKey,
Name: name,
Expand Down
3 changes: 1 addition & 2 deletions bits/40_harb.js
Original file line number Diff line number Diff line change
Expand Up @@ -85,7 +85,7 @@ function dbf_to_aoa(buf, opts)/*:AOA*/ {
var /*filedate = new Date(),*/ nrow = 0, fpos = 0;
if(ft == 0x02) nrow = d.read_shift(2);
/*filedate = new Date(d.read_shift(1) + 1900, d.read_shift(1) - 1, d.read_shift(1));*/d.l += 3;
if(ft != 0x02) nrow = d.read_shift(4);
if(ft != 0x02) nrow = d.read_shift(4); if(nrow > 1048576) nrow = 1e6;
if(ft != 0x02) fpos = d.read_shift(2);
var rlen = d.read_shift(2);

Expand Down Expand Up @@ -822,7 +822,6 @@ var PRN = (function() {
}
// If line ends in \r OR \n
else if(str.charCodeAt(5) == 13 || str.charCodeAt(5) == 10 ) {
//
sep = str.charAt(4); str = str.slice(6);
}
}
Expand Down
2 changes: 2 additions & 0 deletions bits/67_wsxml.js
Original file line number Diff line number Diff line change
Expand Up @@ -238,6 +238,8 @@ function parse_ws_xml_sheetviews(data, wb/*:WBWBProps*/) {
// $FlowIgnore
if(!wb.Views[i]) wb.Views[i] = {};
// $FlowIgnore
if(+tag.zoomScale) wb.Views[i].zoom = +tag.zoomScale;
// $FlowIgnore
if(parsexmlbool(tag.rightToLeft)) wb.Views[i].RTL = true;
});
}
Expand Down
16 changes: 11 additions & 5 deletions bits/76_xls.js
Original file line number Diff line number Diff line change
Expand Up @@ -38,10 +38,12 @@ function slurp(R, blob, length/*:number*/, opts)/*:any*/ {
var l = length;
var bufs = [];
var d = blob.slice(blob.l,blob.l+l);
if(opts && opts.enc && opts.enc.insitu) switch(R.n) {
case 'BOF': case 'FilePass': case 'FileLock': case 'InterfaceHdr': case 'RRDInfo': case 'RRDHead': case 'UsrExcl': break;
if(opts && opts.enc && opts.enc.insitu && d.length > 0) switch(R.n) {
case 'BOF': case 'FilePass': case 'FileLock': case 'InterfaceHdr': case 'RRDInfo': case 'RRDHead': case 'UsrExcl': case 'EOF':
break;
case 'BoundSheet8':
break;
default:
if(d.length === 0) break;
opts.enc.insitu(d);
}
bufs.push(d);
Expand All @@ -52,15 +54,19 @@ function slurp(R, blob, length/*:number*/, opts)/*:any*/ {
l = __readUInt16LE(blob,blob.l+2);
start = blob.l + 4;
if(next.n == 'ContinueFrt') start += 4;
else if(next.n.slice(0,11) == 'ContinueFrt') start += 12;
bufs.push(blob.slice(start,blob.l+4+l));
else if(next.n.slice(0,11) == 'ContinueFrt') {
start += 12;
}
d = blob.slice(start,blob.l+4+l);
bufs.push(d);
blob.l += 4+l;
next = (XLSRecordEnum[__readUInt16LE(blob, blob.l)]);
}
var b = (bconcat(bufs)/*:any*/);
prep_blob(b, 0);
var ll = 0; b.lens = [];
for(var j = 0; j < bufs.length; ++j) { b.lens.push(ll); ll += bufs[j].length; }
if(b.length < length) throw "XLS Record " + (R && R.n || "??") + " Truncated: " + b.length + " < " + length;
return R.f(b, b.length, opts);
}

Expand Down
26 changes: 13 additions & 13 deletions dist/xlsx.core.min.js

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion dist/xlsx.core.min.map

Large diffs are not rendered by default.

32 changes: 21 additions & 11 deletions dist/xlsx.extendscript.js

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

24 changes: 12 additions & 12 deletions dist/xlsx.full.min.js

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion dist/xlsx.full.min.map

Large diffs are not rendered by default.

32 changes: 21 additions & 11 deletions dist/xlsx.js

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

24 changes: 12 additions & 12 deletions dist/xlsx.min.js

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion dist/xlsx.min.map

Large diffs are not rendered by default.

15 changes: 8 additions & 7 deletions dist/xlsx.mini.min.js

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion dist/xlsx.mini.min.map

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "xlsx",
"version": "0.16.9",
"version": "0.17.0",
"author": "sheetjs",
"description": "SheetJS Spreadsheet data parser and writer",
"keywords": [
Expand Down
Loading

1 comment on commit 3542d62

@Andrey-Corado
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

update project

Please sign in to comment.