1
forked from sheetjs/sheetjs

version bump 0.19.1

This commit is contained in:
SheetJS 2022-11-17 04:35:34 -05:00
parent e7e129e417
commit 51a8619000
18 changed files with 142 additions and 71 deletions

@ -4,6 +4,11 @@ This log is intended to keep track of backwards-incompatible changes, including
but not limited to API changes and file location changes. Minor behavioral but not limited to API changes and file location changes. Minor behavioral
changes may not be included if they are not expected to break existing code. changes may not be included if they are not expected to break existing code.
## v0.19.1
* Fixed types issue in strict mode (h/t @younes-io)
* Numbers 12.2 parsing skip ActivityStream.iwa
## v0.19.0 ## v0.19.0
* XLSX export hyperlinks compatible with google sheets (h/t Evan Bovie) * XLSX export hyperlinks compatible with google sheets (h/t Evan Bovie)

@ -153,11 +153,11 @@ test-bun: testbun.mjs ## Run Bun test suite
.PHONY: test-deno .PHONY: test-deno
test-deno: test.ts ## Run Deno test suite test-deno: test.ts ## Run Deno test suite
deno test --allow-env --allow-read --allow-write --config misc/test.deno.jsonc $< deno test --check --allow-env --allow-read --allow-write --config misc/test.deno.jsonc $<
.PHONY: test-denocp .PHONY: test-denocp
test-denocp: testnocp.ts ## Run Deno test suite (without codepage) test-denocp: testnocp.ts ## Run Deno test suite (without codepage)
deno test --allow-env --allow-read --allow-write --config misc/test.deno.jsonc $< deno test --check --allow-env --allow-read --allow-write --config misc/test.deno.jsonc $<
TESTFMT=$(patsubst %,test_%,$(FMT)) TESTFMT=$(patsubst %,test_%,$(FMT))
.PHONY: $(TESTFMT) .PHONY: $(TESTFMT)

@ -1 +1 @@
XLSX.version = '0.19.0'; XLSX.version = '0.19.1';

@ -39,7 +39,7 @@ function parse_ws_xml(data/*:?string*/, opts, idx/*:number*/, rels, wb/*:WBWBPro
var ridx = (data1.match(/<(?:\w*:)?dimension/)||{index:-1}).index; var ridx = (data1.match(/<(?:\w*:)?dimension/)||{index:-1}).index;
if(ridx > 0) { if(ridx > 0) {
var ref = data1.slice(ridx,ridx+50).match(dimregex); var ref = data1.slice(ridx,ridx+50).match(dimregex);
if(ref) parse_ws_xml_dim(s, ref[1]); if(ref && !(opts && opts.nodim)) parse_ws_xml_dim(s, ref[1]);
} }
/* 18.3.1.88 sheetViews CT_SheetViews */ /* 18.3.1.88 sheetViews CT_SheetViews */
@ -75,6 +75,7 @@ function parse_ws_xml(data/*:?string*/, opts, idx/*:number*/, rels, wb/*:WBWBPro
var margins = data2.match(marginregex); var margins = data2.match(marginregex);
if(margins) s['!margins'] = parse_ws_xml_margins(parsexmltag(margins[0])); if(margins) s['!margins'] = parse_ws_xml_margins(parsexmltag(margins[0]));
if(opts && opts.nodim) refguess.s.c = refguess.s.r = 0;
if(!s["!ref"] && refguess.e.c >= refguess.s.c && refguess.e.r >= refguess.s.r) s["!ref"] = encode_range(refguess); if(!s["!ref"] && refguess.e.c >= refguess.s.c && refguess.e.r >= refguess.s.r) s["!ref"] = encode_range(refguess);
if(opts.sheetRows > 0 && s["!ref"]) { if(opts.sheetRows > 0 && s["!ref"]) {
var tmpref = safe_decode_range(s["!ref"]); var tmpref = safe_decode_range(s["!ref"]);
@ -352,8 +353,10 @@ return function parse_ws_xml_data(sdata/*:string*/, s, opts, guess/*:Range*/, th
tag = parsexmltag(x.slice(rstarti,ri), true); tag = parsexmltag(x.slice(rstarti,ri), true);
tagr = tag.r != null ? parseInt(tag.r, 10) : tagr+1; tagc = -1; tagr = tag.r != null ? parseInt(tag.r, 10) : tagr+1; tagc = -1;
if(opts.sheetRows && opts.sheetRows < tagr) continue; if(opts.sheetRows && opts.sheetRows < tagr) continue;
if(guess.s.r > tagr - 1) guess.s.r = tagr - 1; if(!opts.nodim) {
if(guess.e.r < tagr - 1) guess.e.r = tagr - 1; if(guess.s.r > tagr - 1) guess.s.r = tagr - 1;
if(guess.e.r < tagr - 1) guess.e.r = tagr - 1;
}
if(opts && opts.cellStyles) { if(opts && opts.cellStyles) {
rowobj = {}; rowrite = false; rowobj = {}; rowrite = false;
@ -484,8 +487,14 @@ return function parse_ws_xml_data(sdata/*:string*/, s, opts, guess/*:Range*/, th
var cm = (opts.xlmeta.Cell||[])[+tag.cm-1]; var cm = (opts.xlmeta.Cell||[])[+tag.cm-1];
if(cm && cm.type == 'XLDAPR') p.D = true; if(cm && cm.type == 'XLDAPR') p.D = true;
} }
var _r;
if(opts.nodim) {
_r = decode_cell(tag.r);
if(guess.s.r > _r.r) guess.s.r = _r.r;
if(guess.e.r < _r.r) guess.e.r = _r.r;
}
if(dense) { if(dense) {
var _r = decode_cell(tag.r); _r = decode_cell(tag.r);
if(!s["!data"][_r.r]) s["!data"][_r.r] = []; if(!s["!data"][_r.r]) s["!data"][_r.r] = [];
s["!data"][_r.r][_r.c] = p; s["!data"][_r.r][_r.c] = p;
} else s[tag.r] = p; } else s[tag.r] = p;

18
dist/xlsx.core.min.js generated vendored

File diff suppressed because one or more lines are too long

2
dist/xlsx.core.min.map generated vendored

File diff suppressed because one or more lines are too long

25
dist/xlsx.extendscript.js generated vendored

@ -160,7 +160,7 @@ var DO_NOT_EXPORT_CODEPAGE = true;
/*global global, exports, module, require:false, process:false, Buffer:false, ArrayBuffer:false, DataView:false, Deno:false */ /*global global, exports, module, require:false, process:false, Buffer:false, ArrayBuffer:false, DataView:false, Deno:false */
var XLSX = {}; var XLSX = {};
function make_xlsx_lib(XLSX){ function make_xlsx_lib(XLSX){
XLSX.version = '0.19.0'; XLSX.version = '0.19.1';
var current_codepage = 1200, current_ansi = 1252; var current_codepage = 1200, current_ansi = 1252;
/*global cptable:true, window */ /*global cptable:true, window */
var $cptable; var $cptable;
@ -15359,7 +15359,7 @@ function parse_ws_xml(data, opts, idx, rels, wb, themes, styles) {
var ridx = (data1.match(/<(?:\w*:)?dimension/)||{index:-1}).index; var ridx = (data1.match(/<(?:\w*:)?dimension/)||{index:-1}).index;
if(ridx > 0) { if(ridx > 0) {
var ref = data1.slice(ridx,ridx+50).match(dimregex); var ref = data1.slice(ridx,ridx+50).match(dimregex);
if(ref) parse_ws_xml_dim(s, ref[1]); if(ref && !(opts && opts.nodim)) parse_ws_xml_dim(s, ref[1]);
} }
/* 18.3.1.88 sheetViews CT_SheetViews */ /* 18.3.1.88 sheetViews CT_SheetViews */
@ -15395,6 +15395,7 @@ function parse_ws_xml(data, opts, idx, rels, wb, themes, styles) {
var margins = data2.match(marginregex); var margins = data2.match(marginregex);
if(margins) s['!margins'] = parse_ws_xml_margins(parsexmltag(margins[0])); if(margins) s['!margins'] = parse_ws_xml_margins(parsexmltag(margins[0]));
if(opts && opts.nodim) refguess.s.c = refguess.s.r = 0;
if(!s["!ref"] && refguess.e.c >= refguess.s.c && refguess.e.r >= refguess.s.r) s["!ref"] = encode_range(refguess); if(!s["!ref"] && refguess.e.c >= refguess.s.c && refguess.e.r >= refguess.s.r) s["!ref"] = encode_range(refguess);
if(opts.sheetRows > 0 && s["!ref"]) { if(opts.sheetRows > 0 && s["!ref"]) {
var tmpref = safe_decode_range(s["!ref"]); var tmpref = safe_decode_range(s["!ref"]);
@ -15672,8 +15673,10 @@ return function parse_ws_xml_data(sdata, s, opts, guess, themes, styles) {
tag = parsexmltag(x.slice(rstarti,ri), true); tag = parsexmltag(x.slice(rstarti,ri), true);
tagr = tag.r != null ? parseInt(tag.r, 10) : tagr+1; tagc = -1; tagr = tag.r != null ? parseInt(tag.r, 10) : tagr+1; tagc = -1;
if(opts.sheetRows && opts.sheetRows < tagr) continue; if(opts.sheetRows && opts.sheetRows < tagr) continue;
if(guess.s.r > tagr - 1) guess.s.r = tagr - 1; if(!opts.nodim) {
if(guess.e.r < tagr - 1) guess.e.r = tagr - 1; if(guess.s.r > tagr - 1) guess.s.r = tagr - 1;
if(guess.e.r < tagr - 1) guess.e.r = tagr - 1;
}
if(opts && opts.cellStyles) { if(opts && opts.cellStyles) {
rowobj = {}; rowrite = false; rowobj = {}; rowrite = false;
@ -15804,8 +15807,14 @@ return function parse_ws_xml_data(sdata, s, opts, guess, themes, styles) {
var cm = (opts.xlmeta.Cell||[])[+tag.cm-1]; var cm = (opts.xlmeta.Cell||[])[+tag.cm-1];
if(cm && cm.type == 'XLDAPR') p.D = true; if(cm && cm.type == 'XLDAPR') p.D = true;
} }
var _r;
if(opts.nodim) {
_r = decode_cell(tag.r);
if(guess.s.r > _r.r) guess.s.r = _r.r;
if(guess.e.r < _r.r) guess.e.r = _r.r;
}
if(dense) { if(dense) {
var _r = decode_cell(tag.r); _r = decode_cell(tag.r);
if(!s["!data"][_r.r]) s["!data"][_r.r] = []; if(!s["!data"][_r.r]) s["!data"][_r.r] = [];
s["!data"][_r.r][_r.c] = p; s["!data"][_r.r][_r.c] = p;
} else s[tag.r] = p; } else s[tag.r] = p;
@ -24221,7 +24230,7 @@ function parse_numbers_iwa(cfb, opts) {
cfb.FileIndex.forEach(function(s) { cfb.FileIndex.forEach(function(s) {
if (!s.name.match(/\.iwa$/)) if (!s.name.match(/\.iwa$/))
return; return;
if (s.content[0] == 98) if (s.content[0] != 0)
return; return;
var o; var o;
try { try {
@ -24373,7 +24382,7 @@ function build_numbers_deps(cfb) {
return; return;
if (!fi.name.match(/\.iwa/)) if (!fi.name.match(/\.iwa/))
return; return;
if (fi.name.match(/OperationStorage/)) if (fi.content[0] != 0)
return; return;
parse_iwa_file(decompress_iwa_file(fi.content)).forEach(function(packet) { parse_iwa_file(decompress_iwa_file(fi.content)).forEach(function(packet) {
indices.push(packet.id); indices.push(packet.id);
@ -24383,7 +24392,7 @@ function build_numbers_deps(cfb) {
cfb.FileIndex.forEach(function(fi) { cfb.FileIndex.forEach(function(fi) {
if (!fi.name.match(/\.iwa/)) if (!fi.name.match(/\.iwa/))
return; return;
if (fi.name.match(/OperationStorage/)) if (fi.content[0] != 0)
return; return;
parse_iwa_file(decompress_iwa_file(fi.content)).forEach(function(ia) { parse_iwa_file(decompress_iwa_file(fi.content)).forEach(function(ia) {
ia.messages.forEach(function(mess) { ia.messages.forEach(function(mess) {

12
dist/xlsx.full.min.js generated vendored

File diff suppressed because one or more lines are too long

2
dist/xlsx.full.min.map generated vendored

File diff suppressed because one or more lines are too long

6
dist/xlsx.mini.min.js generated vendored

File diff suppressed because one or more lines are too long

2
dist/xlsx.mini.min.map generated vendored

File diff suppressed because one or more lines are too long

@ -1,6 +1,6 @@
{ {
"name": "xlsx", "name": "xlsx",
"version": "0.19.0", "version": "0.19.1",
"author": "sheetjs", "author": "sheetjs",
"description": "SheetJS Spreadsheet data parser and writer", "description": "SheetJS Spreadsheet data parser and writer",
"keywords": [ "keywords": [

3
types/index.d.ts vendored

@ -221,6 +221,9 @@ export interface ParsingOptions extends CommonOptions {
/** If true, plaintext parsing will not parse values */ /** If true, plaintext parsing will not parse values */
raw?: boolean; raw?: boolean;
/** If true, ignore "dimensions" records and guess range using every cell */
nodim?: boolean;
/** If true, preserve _xlfn. prefixes in formula function names */ /** If true, preserve _xlfn. prefixes in formula function names */
xlfn?: boolean; xlfn?: boolean;

@ -4,7 +4,7 @@
/*global global, exports, module, require:false, process:false, Buffer:false, ArrayBuffer:false, DataView:false, Deno:false */ /*global global, exports, module, require:false, process:false, Buffer:false, ArrayBuffer:false, DataView:false, Deno:false */
var XLSX = {}; var XLSX = {};
function make_xlsx_lib(XLSX){ function make_xlsx_lib(XLSX){
XLSX.version = '0.19.0'; XLSX.version = '0.19.1';
var current_codepage = 1200, current_ansi = 1252; var current_codepage = 1200, current_ansi = 1252;
/*:: declare var cptable:any; */ /*:: declare var cptable:any; */
/*global cptable:true, window */ /*global cptable:true, window */
@ -15297,7 +15297,7 @@ function parse_ws_xml(data/*:?string*/, opts, idx/*:number*/, rels, wb/*:WBWBPro
var ridx = (data1.match(/<(?:\w*:)?dimension/)||{index:-1}).index; var ridx = (data1.match(/<(?:\w*:)?dimension/)||{index:-1}).index;
if(ridx > 0) { if(ridx > 0) {
var ref = data1.slice(ridx,ridx+50).match(dimregex); var ref = data1.slice(ridx,ridx+50).match(dimregex);
if(ref) parse_ws_xml_dim(s, ref[1]); if(ref && !(opts && opts.nodim)) parse_ws_xml_dim(s, ref[1]);
} }
/* 18.3.1.88 sheetViews CT_SheetViews */ /* 18.3.1.88 sheetViews CT_SheetViews */
@ -15333,6 +15333,7 @@ function parse_ws_xml(data/*:?string*/, opts, idx/*:number*/, rels, wb/*:WBWBPro
var margins = data2.match(marginregex); var margins = data2.match(marginregex);
if(margins) s['!margins'] = parse_ws_xml_margins(parsexmltag(margins[0])); if(margins) s['!margins'] = parse_ws_xml_margins(parsexmltag(margins[0]));
if(opts && opts.nodim) refguess.s.c = refguess.s.r = 0;
if(!s["!ref"] && refguess.e.c >= refguess.s.c && refguess.e.r >= refguess.s.r) s["!ref"] = encode_range(refguess); if(!s["!ref"] && refguess.e.c >= refguess.s.c && refguess.e.r >= refguess.s.r) s["!ref"] = encode_range(refguess);
if(opts.sheetRows > 0 && s["!ref"]) { if(opts.sheetRows > 0 && s["!ref"]) {
var tmpref = safe_decode_range(s["!ref"]); var tmpref = safe_decode_range(s["!ref"]);
@ -15610,8 +15611,10 @@ return function parse_ws_xml_data(sdata/*:string*/, s, opts, guess/*:Range*/, th
tag = parsexmltag(x.slice(rstarti,ri), true); tag = parsexmltag(x.slice(rstarti,ri), true);
tagr = tag.r != null ? parseInt(tag.r, 10) : tagr+1; tagc = -1; tagr = tag.r != null ? parseInt(tag.r, 10) : tagr+1; tagc = -1;
if(opts.sheetRows && opts.sheetRows < tagr) continue; if(opts.sheetRows && opts.sheetRows < tagr) continue;
if(guess.s.r > tagr - 1) guess.s.r = tagr - 1; if(!opts.nodim) {
if(guess.e.r < tagr - 1) guess.e.r = tagr - 1; if(guess.s.r > tagr - 1) guess.s.r = tagr - 1;
if(guess.e.r < tagr - 1) guess.e.r = tagr - 1;
}
if(opts && opts.cellStyles) { if(opts && opts.cellStyles) {
rowobj = {}; rowrite = false; rowobj = {}; rowrite = false;
@ -15742,8 +15745,14 @@ return function parse_ws_xml_data(sdata/*:string*/, s, opts, guess/*:Range*/, th
var cm = (opts.xlmeta.Cell||[])[+tag.cm-1]; var cm = (opts.xlmeta.Cell||[])[+tag.cm-1];
if(cm && cm.type == 'XLDAPR') p.D = true; if(cm && cm.type == 'XLDAPR') p.D = true;
} }
var _r;
if(opts.nodim) {
_r = decode_cell(tag.r);
if(guess.s.r > _r.r) guess.s.r = _r.r;
if(guess.e.r < _r.r) guess.e.r = _r.r;
}
if(dense) { if(dense) {
var _r = decode_cell(tag.r); _r = decode_cell(tag.r);
if(!s["!data"][_r.r]) s["!data"][_r.r] = []; if(!s["!data"][_r.r]) s["!data"][_r.r] = [];
s["!data"][_r.r][_r.c] = p; s["!data"][_r.r][_r.c] = p;
} else s[tag.r] = p; } else s[tag.r] = p;
@ -24175,7 +24184,7 @@ function parse_numbers_iwa(cfb, opts) {
cfb.FileIndex.forEach(function(s) { cfb.FileIndex.forEach(function(s) {
if (!s.name.match(/\.iwa$/)) if (!s.name.match(/\.iwa$/))
return; return;
if (s.content[0] == 98) if (s.content[0] != 0)
return; return;
var o; var o;
try { try {
@ -24327,7 +24336,7 @@ function build_numbers_deps(cfb) {
return; return;
if (!fi.name.match(/\.iwa/)) if (!fi.name.match(/\.iwa/))
return; return;
if (fi.name.match(/OperationStorage/)) if (fi.content[0] != 0)
return; return;
parse_iwa_file(decompress_iwa_file(fi.content)).forEach(function(packet) { parse_iwa_file(decompress_iwa_file(fi.content)).forEach(function(packet) {
indices.push(packet.id); indices.push(packet.id);
@ -24337,7 +24346,7 @@ function build_numbers_deps(cfb) {
cfb.FileIndex.forEach(function(fi) { cfb.FileIndex.forEach(function(fi) {
if (!fi.name.match(/\.iwa/)) if (!fi.name.match(/\.iwa/))
return; return;
if (fi.name.match(/OperationStorage/)) if (fi.content[0] != 0)
return; return;
parse_iwa_file(decompress_iwa_file(fi.content)).forEach(function(ia) { parse_iwa_file(decompress_iwa_file(fi.content)).forEach(function(ia) {
ia.messages.forEach(function(mess) { ia.messages.forEach(function(mess) {

25
xlsx.js generated

@ -4,7 +4,7 @@
/*global global, exports, module, require:false, process:false, Buffer:false, ArrayBuffer:false, DataView:false, Deno:false */ /*global global, exports, module, require:false, process:false, Buffer:false, ArrayBuffer:false, DataView:false, Deno:false */
var XLSX = {}; var XLSX = {};
function make_xlsx_lib(XLSX){ function make_xlsx_lib(XLSX){
XLSX.version = '0.19.0'; XLSX.version = '0.19.1';
var current_codepage = 1200, current_ansi = 1252; var current_codepage = 1200, current_ansi = 1252;
/*global cptable:true, window */ /*global cptable:true, window */
var $cptable; var $cptable;
@ -15203,7 +15203,7 @@ function parse_ws_xml(data, opts, idx, rels, wb, themes, styles) {
var ridx = (data1.match(/<(?:\w*:)?dimension/)||{index:-1}).index; var ridx = (data1.match(/<(?:\w*:)?dimension/)||{index:-1}).index;
if(ridx > 0) { if(ridx > 0) {
var ref = data1.slice(ridx,ridx+50).match(dimregex); var ref = data1.slice(ridx,ridx+50).match(dimregex);
if(ref) parse_ws_xml_dim(s, ref[1]); if(ref && !(opts && opts.nodim)) parse_ws_xml_dim(s, ref[1]);
} }
/* 18.3.1.88 sheetViews CT_SheetViews */ /* 18.3.1.88 sheetViews CT_SheetViews */
@ -15239,6 +15239,7 @@ function parse_ws_xml(data, opts, idx, rels, wb, themes, styles) {
var margins = data2.match(marginregex); var margins = data2.match(marginregex);
if(margins) s['!margins'] = parse_ws_xml_margins(parsexmltag(margins[0])); if(margins) s['!margins'] = parse_ws_xml_margins(parsexmltag(margins[0]));
if(opts && opts.nodim) refguess.s.c = refguess.s.r = 0;
if(!s["!ref"] && refguess.e.c >= refguess.s.c && refguess.e.r >= refguess.s.r) s["!ref"] = encode_range(refguess); if(!s["!ref"] && refguess.e.c >= refguess.s.c && refguess.e.r >= refguess.s.r) s["!ref"] = encode_range(refguess);
if(opts.sheetRows > 0 && s["!ref"]) { if(opts.sheetRows > 0 && s["!ref"]) {
var tmpref = safe_decode_range(s["!ref"]); var tmpref = safe_decode_range(s["!ref"]);
@ -15516,8 +15517,10 @@ return function parse_ws_xml_data(sdata, s, opts, guess, themes, styles) {
tag = parsexmltag(x.slice(rstarti,ri), true); tag = parsexmltag(x.slice(rstarti,ri), true);
tagr = tag.r != null ? parseInt(tag.r, 10) : tagr+1; tagc = -1; tagr = tag.r != null ? parseInt(tag.r, 10) : tagr+1; tagc = -1;
if(opts.sheetRows && opts.sheetRows < tagr) continue; if(opts.sheetRows && opts.sheetRows < tagr) continue;
if(guess.s.r > tagr - 1) guess.s.r = tagr - 1; if(!opts.nodim) {
if(guess.e.r < tagr - 1) guess.e.r = tagr - 1; if(guess.s.r > tagr - 1) guess.s.r = tagr - 1;
if(guess.e.r < tagr - 1) guess.e.r = tagr - 1;
}
if(opts && opts.cellStyles) { if(opts && opts.cellStyles) {
rowobj = {}; rowrite = false; rowobj = {}; rowrite = false;
@ -15648,8 +15651,14 @@ return function parse_ws_xml_data(sdata, s, opts, guess, themes, styles) {
var cm = (opts.xlmeta.Cell||[])[+tag.cm-1]; var cm = (opts.xlmeta.Cell||[])[+tag.cm-1];
if(cm && cm.type == 'XLDAPR') p.D = true; if(cm && cm.type == 'XLDAPR') p.D = true;
} }
var _r;
if(opts.nodim) {
_r = decode_cell(tag.r);
if(guess.s.r > _r.r) guess.s.r = _r.r;
if(guess.e.r < _r.r) guess.e.r = _r.r;
}
if(dense) { if(dense) {
var _r = decode_cell(tag.r); _r = decode_cell(tag.r);
if(!s["!data"][_r.r]) s["!data"][_r.r] = []; if(!s["!data"][_r.r]) s["!data"][_r.r] = [];
s["!data"][_r.r][_r.c] = p; s["!data"][_r.r][_r.c] = p;
} else s[tag.r] = p; } else s[tag.r] = p;
@ -24065,7 +24074,7 @@ function parse_numbers_iwa(cfb, opts) {
cfb.FileIndex.forEach(function(s) { cfb.FileIndex.forEach(function(s) {
if (!s.name.match(/\.iwa$/)) if (!s.name.match(/\.iwa$/))
return; return;
if (s.content[0] == 98) if (s.content[0] != 0)
return; return;
var o; var o;
try { try {
@ -24217,7 +24226,7 @@ function build_numbers_deps(cfb) {
return; return;
if (!fi.name.match(/\.iwa/)) if (!fi.name.match(/\.iwa/))
return; return;
if (fi.name.match(/OperationStorage/)) if (fi.content[0] != 0)
return; return;
parse_iwa_file(decompress_iwa_file(fi.content)).forEach(function(packet) { parse_iwa_file(decompress_iwa_file(fi.content)).forEach(function(packet) {
indices.push(packet.id); indices.push(packet.id);
@ -24227,7 +24236,7 @@ function build_numbers_deps(cfb) {
cfb.FileIndex.forEach(function(fi) { cfb.FileIndex.forEach(function(fi) {
if (!fi.name.match(/\.iwa/)) if (!fi.name.match(/\.iwa/))
return; return;
if (fi.name.match(/OperationStorage/)) if (fi.content[0] != 0)
return; return;
parse_iwa_file(decompress_iwa_file(fi.content)).forEach(function(ia) { parse_iwa_file(decompress_iwa_file(fi.content)).forEach(function(ia) {
ia.messages.forEach(function(mess) { ia.messages.forEach(function(mess) {

@ -4,7 +4,7 @@
/*global global, exports, module, require:false, process:false, Buffer:false, ArrayBuffer:false, DataView:false, Deno:false */ /*global global, exports, module, require:false, process:false, Buffer:false, ArrayBuffer:false, DataView:false, Deno:false */
var XLSX = {}; var XLSX = {};
function make_xlsx_lib(XLSX){ function make_xlsx_lib(XLSX){
XLSX.version = '0.19.0'; XLSX.version = '0.19.1';
var current_codepage = 1200, current_ansi = 1252; var current_codepage = 1200, current_ansi = 1252;
/*:: declare var cptable:any; */ /*:: declare var cptable:any; */
/*global cptable:true, window */ /*global cptable:true, window */
@ -8386,7 +8386,7 @@ function parse_ws_xml(data/*:?string*/, opts, idx/*:number*/, rels, wb/*:WBWBPro
var ridx = (data1.match(/<(?:\w*:)?dimension/)||{index:-1}).index; var ridx = (data1.match(/<(?:\w*:)?dimension/)||{index:-1}).index;
if(ridx > 0) { if(ridx > 0) {
var ref = data1.slice(ridx,ridx+50).match(dimregex); var ref = data1.slice(ridx,ridx+50).match(dimregex);
if(ref) parse_ws_xml_dim(s, ref[1]); if(ref && !(opts && opts.nodim)) parse_ws_xml_dim(s, ref[1]);
} }
/* 18.3.1.88 sheetViews CT_SheetViews */ /* 18.3.1.88 sheetViews CT_SheetViews */
@ -8422,6 +8422,7 @@ function parse_ws_xml(data/*:?string*/, opts, idx/*:number*/, rels, wb/*:WBWBPro
var margins = data2.match(marginregex); var margins = data2.match(marginregex);
if(margins) s['!margins'] = parse_ws_xml_margins(parsexmltag(margins[0])); if(margins) s['!margins'] = parse_ws_xml_margins(parsexmltag(margins[0]));
if(opts && opts.nodim) refguess.s.c = refguess.s.r = 0;
if(!s["!ref"] && refguess.e.c >= refguess.s.c && refguess.e.r >= refguess.s.r) s["!ref"] = encode_range(refguess); if(!s["!ref"] && refguess.e.c >= refguess.s.c && refguess.e.r >= refguess.s.r) s["!ref"] = encode_range(refguess);
if(opts.sheetRows > 0 && s["!ref"]) { if(opts.sheetRows > 0 && s["!ref"]) {
var tmpref = safe_decode_range(s["!ref"]); var tmpref = safe_decode_range(s["!ref"]);
@ -8699,8 +8700,10 @@ return function parse_ws_xml_data(sdata/*:string*/, s, opts, guess/*:Range*/, th
tag = parsexmltag(x.slice(rstarti,ri), true); tag = parsexmltag(x.slice(rstarti,ri), true);
tagr = tag.r != null ? parseInt(tag.r, 10) : tagr+1; tagc = -1; tagr = tag.r != null ? parseInt(tag.r, 10) : tagr+1; tagc = -1;
if(opts.sheetRows && opts.sheetRows < tagr) continue; if(opts.sheetRows && opts.sheetRows < tagr) continue;
if(guess.s.r > tagr - 1) guess.s.r = tagr - 1; if(!opts.nodim) {
if(guess.e.r < tagr - 1) guess.e.r = tagr - 1; if(guess.s.r > tagr - 1) guess.s.r = tagr - 1;
if(guess.e.r < tagr - 1) guess.e.r = tagr - 1;
}
if(opts && opts.cellStyles) { if(opts && opts.cellStyles) {
rowobj = {}; rowrite = false; rowobj = {}; rowrite = false;
@ -8831,8 +8834,14 @@ return function parse_ws_xml_data(sdata/*:string*/, s, opts, guess/*:Range*/, th
var cm = (opts.xlmeta.Cell||[])[+tag.cm-1]; var cm = (opts.xlmeta.Cell||[])[+tag.cm-1];
if(cm && cm.type == 'XLDAPR') p.D = true; if(cm && cm.type == 'XLDAPR') p.D = true;
} }
var _r;
if(opts.nodim) {
_r = decode_cell(tag.r);
if(guess.s.r > _r.r) guess.s.r = _r.r;
if(guess.e.r < _r.r) guess.e.r = _r.r;
}
if(dense) { if(dense) {
var _r = decode_cell(tag.r); _r = decode_cell(tag.r);
if(!s["!data"][_r.r]) s["!data"][_r.r] = []; if(!s["!data"][_r.r]) s["!data"][_r.r] = [];
s["!data"][_r.r][_r.c] = p; s["!data"][_r.r][_r.c] = p;
} else s[tag.r] = p; } else s[tag.r] = p;

@ -4,7 +4,7 @@
/*global global, exports, module, require:false, process:false, Buffer:false, ArrayBuffer:false, DataView:false, Deno:false */ /*global global, exports, module, require:false, process:false, Buffer:false, ArrayBuffer:false, DataView:false, Deno:false */
var XLSX = {}; var XLSX = {};
function make_xlsx_lib(XLSX){ function make_xlsx_lib(XLSX){
XLSX.version = '0.19.0'; XLSX.version = '0.19.1';
var current_codepage = 1200, current_ansi = 1252; var current_codepage = 1200, current_ansi = 1252;
/*global cptable:true, window */ /*global cptable:true, window */
var $cptable; var $cptable;
@ -8300,7 +8300,7 @@ function parse_ws_xml(data, opts, idx, rels, wb, themes, styles) {
var ridx = (data1.match(/<(?:\w*:)?dimension/)||{index:-1}).index; var ridx = (data1.match(/<(?:\w*:)?dimension/)||{index:-1}).index;
if(ridx > 0) { if(ridx > 0) {
var ref = data1.slice(ridx,ridx+50).match(dimregex); var ref = data1.slice(ridx,ridx+50).match(dimregex);
if(ref) parse_ws_xml_dim(s, ref[1]); if(ref && !(opts && opts.nodim)) parse_ws_xml_dim(s, ref[1]);
} }
/* 18.3.1.88 sheetViews CT_SheetViews */ /* 18.3.1.88 sheetViews CT_SheetViews */
@ -8336,6 +8336,7 @@ function parse_ws_xml(data, opts, idx, rels, wb, themes, styles) {
var margins = data2.match(marginregex); var margins = data2.match(marginregex);
if(margins) s['!margins'] = parse_ws_xml_margins(parsexmltag(margins[0])); if(margins) s['!margins'] = parse_ws_xml_margins(parsexmltag(margins[0]));
if(opts && opts.nodim) refguess.s.c = refguess.s.r = 0;
if(!s["!ref"] && refguess.e.c >= refguess.s.c && refguess.e.r >= refguess.s.r) s["!ref"] = encode_range(refguess); if(!s["!ref"] && refguess.e.c >= refguess.s.c && refguess.e.r >= refguess.s.r) s["!ref"] = encode_range(refguess);
if(opts.sheetRows > 0 && s["!ref"]) { if(opts.sheetRows > 0 && s["!ref"]) {
var tmpref = safe_decode_range(s["!ref"]); var tmpref = safe_decode_range(s["!ref"]);
@ -8613,8 +8614,10 @@ return function parse_ws_xml_data(sdata, s, opts, guess, themes, styles) {
tag = parsexmltag(x.slice(rstarti,ri), true); tag = parsexmltag(x.slice(rstarti,ri), true);
tagr = tag.r != null ? parseInt(tag.r, 10) : tagr+1; tagc = -1; tagr = tag.r != null ? parseInt(tag.r, 10) : tagr+1; tagc = -1;
if(opts.sheetRows && opts.sheetRows < tagr) continue; if(opts.sheetRows && opts.sheetRows < tagr) continue;
if(guess.s.r > tagr - 1) guess.s.r = tagr - 1; if(!opts.nodim) {
if(guess.e.r < tagr - 1) guess.e.r = tagr - 1; if(guess.s.r > tagr - 1) guess.s.r = tagr - 1;
if(guess.e.r < tagr - 1) guess.e.r = tagr - 1;
}
if(opts && opts.cellStyles) { if(opts && opts.cellStyles) {
rowobj = {}; rowrite = false; rowobj = {}; rowrite = false;
@ -8745,8 +8748,14 @@ return function parse_ws_xml_data(sdata, s, opts, guess, themes, styles) {
var cm = (opts.xlmeta.Cell||[])[+tag.cm-1]; var cm = (opts.xlmeta.Cell||[])[+tag.cm-1];
if(cm && cm.type == 'XLDAPR') p.D = true; if(cm && cm.type == 'XLDAPR') p.D = true;
} }
var _r;
if(opts.nodim) {
_r = decode_cell(tag.r);
if(guess.s.r > _r.r) guess.s.r = _r.r;
if(guess.e.r < _r.r) guess.e.r = _r.r;
}
if(dense) { if(dense) {
var _r = decode_cell(tag.r); _r = decode_cell(tag.r);
if(!s["!data"][_r.r]) s["!data"][_r.r] = []; if(!s["!data"][_r.r]) s["!data"][_r.r] = [];
s["!data"][_r.r][_r.c] = p; s["!data"][_r.r][_r.c] = p;
} else s[tag.r] = p; } else s[tag.r] = p;

25
xlsx.mjs generated

@ -3,7 +3,7 @@
/*exported XLSX */ /*exported XLSX */
/*global process:false, Buffer:false, ArrayBuffer:false, DataView:false, Deno:false */ /*global process:false, Buffer:false, ArrayBuffer:false, DataView:false, Deno:false */
var XLSX = {}; var XLSX = {};
XLSX.version = '0.19.0'; XLSX.version = '0.19.1';
var current_codepage = 1200, current_ansi = 1252; var current_codepage = 1200, current_ansi = 1252;
/*:: declare var cptable:any; */ /*:: declare var cptable:any; */
/*global cptable:true, window */ /*global cptable:true, window */
@ -15292,7 +15292,7 @@ function parse_ws_xml(data/*:?string*/, opts, idx/*:number*/, rels, wb/*:WBWBPro
var ridx = (data1.match(/<(?:\w*:)?dimension/)||{index:-1}).index; var ridx = (data1.match(/<(?:\w*:)?dimension/)||{index:-1}).index;
if(ridx > 0) { if(ridx > 0) {
var ref = data1.slice(ridx,ridx+50).match(dimregex); var ref = data1.slice(ridx,ridx+50).match(dimregex);
if(ref) parse_ws_xml_dim(s, ref[1]); if(ref && !(opts && opts.nodim)) parse_ws_xml_dim(s, ref[1]);
} }
/* 18.3.1.88 sheetViews CT_SheetViews */ /* 18.3.1.88 sheetViews CT_SheetViews */
@ -15328,6 +15328,7 @@ function parse_ws_xml(data/*:?string*/, opts, idx/*:number*/, rels, wb/*:WBWBPro
var margins = data2.match(marginregex); var margins = data2.match(marginregex);
if(margins) s['!margins'] = parse_ws_xml_margins(parsexmltag(margins[0])); if(margins) s['!margins'] = parse_ws_xml_margins(parsexmltag(margins[0]));
if(opts && opts.nodim) refguess.s.c = refguess.s.r = 0;
if(!s["!ref"] && refguess.e.c >= refguess.s.c && refguess.e.r >= refguess.s.r) s["!ref"] = encode_range(refguess); if(!s["!ref"] && refguess.e.c >= refguess.s.c && refguess.e.r >= refguess.s.r) s["!ref"] = encode_range(refguess);
if(opts.sheetRows > 0 && s["!ref"]) { if(opts.sheetRows > 0 && s["!ref"]) {
var tmpref = safe_decode_range(s["!ref"]); var tmpref = safe_decode_range(s["!ref"]);
@ -15605,8 +15606,10 @@ return function parse_ws_xml_data(sdata/*:string*/, s, opts, guess/*:Range*/, th
tag = parsexmltag(x.slice(rstarti,ri), true); tag = parsexmltag(x.slice(rstarti,ri), true);
tagr = tag.r != null ? parseInt(tag.r, 10) : tagr+1; tagc = -1; tagr = tag.r != null ? parseInt(tag.r, 10) : tagr+1; tagc = -1;
if(opts.sheetRows && opts.sheetRows < tagr) continue; if(opts.sheetRows && opts.sheetRows < tagr) continue;
if(guess.s.r > tagr - 1) guess.s.r = tagr - 1; if(!opts.nodim) {
if(guess.e.r < tagr - 1) guess.e.r = tagr - 1; if(guess.s.r > tagr - 1) guess.s.r = tagr - 1;
if(guess.e.r < tagr - 1) guess.e.r = tagr - 1;
}
if(opts && opts.cellStyles) { if(opts && opts.cellStyles) {
rowobj = {}; rowrite = false; rowobj = {}; rowrite = false;
@ -15737,8 +15740,14 @@ return function parse_ws_xml_data(sdata/*:string*/, s, opts, guess/*:Range*/, th
var cm = (opts.xlmeta.Cell||[])[+tag.cm-1]; var cm = (opts.xlmeta.Cell||[])[+tag.cm-1];
if(cm && cm.type == 'XLDAPR') p.D = true; if(cm && cm.type == 'XLDAPR') p.D = true;
} }
var _r;
if(opts.nodim) {
_r = decode_cell(tag.r);
if(guess.s.r > _r.r) guess.s.r = _r.r;
if(guess.e.r < _r.r) guess.e.r = _r.r;
}
if(dense) { if(dense) {
var _r = decode_cell(tag.r); _r = decode_cell(tag.r);
if(!s["!data"][_r.r]) s["!data"][_r.r] = []; if(!s["!data"][_r.r]) s["!data"][_r.r] = [];
s["!data"][_r.r][_r.c] = p; s["!data"][_r.r][_r.c] = p;
} else s[tag.r] = p; } else s[tag.r] = p;
@ -24170,7 +24179,7 @@ function parse_numbers_iwa(cfb, opts) {
cfb.FileIndex.forEach(function(s) { cfb.FileIndex.forEach(function(s) {
if (!s.name.match(/\.iwa$/)) if (!s.name.match(/\.iwa$/))
return; return;
if (s.content[0] == 98) if (s.content[0] != 0)
return; return;
var o; var o;
try { try {
@ -24322,7 +24331,7 @@ function build_numbers_deps(cfb) {
return; return;
if (!fi.name.match(/\.iwa/)) if (!fi.name.match(/\.iwa/))
return; return;
if (fi.name.match(/OperationStorage/)) if (fi.content[0] != 0)
return; return;
parse_iwa_file(decompress_iwa_file(fi.content)).forEach(function(packet) { parse_iwa_file(decompress_iwa_file(fi.content)).forEach(function(packet) {
indices.push(packet.id); indices.push(packet.id);
@ -24332,7 +24341,7 @@ function build_numbers_deps(cfb) {
cfb.FileIndex.forEach(function(fi) { cfb.FileIndex.forEach(function(fi) {
if (!fi.name.match(/\.iwa/)) if (!fi.name.match(/\.iwa/))
return; return;
if (fi.name.match(/OperationStorage/)) if (fi.content[0] != 0)
return; return;
parse_iwa_file(decompress_iwa_file(fi.content)).forEach(function(ia) { parse_iwa_file(decompress_iwa_file(fi.content)).forEach(function(ia) {
ia.messages.forEach(function(mess) { ia.messages.forEach(function(mess) {