version bump 0.16.4
This commit is contained in:
parent
6127e19c02
commit
6b1f5a0137
|
@ -1 +1 @@
|
|||
XLSX.version = '0.16.3';
|
||||
XLSX.version = '0.16.4';
|
||||
|
|
|
@ -606,6 +606,7 @@ function parse_ws_bin(data, _opts, idx, rels, wb/*:WBWBProps*/, themes, styles)/
|
|||
case 0x00AE: /* 'BrtCustomFilter' */
|
||||
case 0x049C: /* 'BrtCustomFilter14' */
|
||||
case 0x01F3: /* 'BrtDRef' */
|
||||
case 0x01FB: /* 'BrtDXF' */
|
||||
case 0x0226: /* 'BrtDrawing' */
|
||||
case 0x00AB: /* 'BrtDynamicFilter' */
|
||||
case 0x00A7: /* 'BrtFilter' */
|
||||
|
|
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
|
@ -9161,7 +9161,7 @@ module.exports = ZStream;
|
|||
/*global global, exports, module, require:false, process:false, Buffer:false, ArrayBuffer:false */
|
||||
var XLSX = {};
|
||||
function make_xlsx_lib(XLSX){
|
||||
XLSX.version = '0.16.3';
|
||||
XLSX.version = '0.16.4';
|
||||
var current_codepage = 1200, current_ansi = 1252;
|
||||
/*global cptable:true, window */
|
||||
if(typeof module !== "undefined" && typeof require !== 'undefined') {
|
||||
|
@ -20435,9 +20435,12 @@ var PtgBinOp = {
|
|||
PtgPower: "^",
|
||||
PtgSub: "-"
|
||||
};
|
||||
|
||||
// List of invalid characters needs to be tested further
|
||||
var quoteCharacters = new RegExp(/[^\w\u4E00-\u9FFF\u3040-\u30FF]/)
|
||||
function formula_quote_sheet_name(sname, opts) {
|
||||
if(!sname && !(opts && opts.biff <= 5 && opts.biff >= 2)) throw new Error("empty sheet name");
|
||||
if(sname.indexOf(" ") > -1) return "'" + sname + "'";
|
||||
if (quoteCharacters.test(sname)) return "'" + sname + "'";
|
||||
return sname;
|
||||
}
|
||||
function get_ixti_raw(supbooks, ixti, opts) {
|
||||
|
@ -23568,6 +23571,7 @@ function parse_ws_bin(data, _opts, idx, rels, wb, themes, styles) {
|
|||
case 0x00AE: /* 'BrtCustomFilter' */
|
||||
case 0x049C: /* 'BrtCustomFilter14' */
|
||||
case 0x01F3: /* 'BrtDRef' */
|
||||
case 0x01FB: /* 'BrtDXF' */
|
||||
case 0x0226: /* 'BrtDrawing' */
|
||||
case 0x00AB: /* 'BrtDynamicFilter' */
|
||||
case 0x00A7: /* 'BrtFilter' */
|
||||
|
@ -29433,7 +29437,7 @@ var write_content_ods = (function() {
|
|||
ct['office:value'] = (cell.v||0);
|
||||
break;
|
||||
case 's': case 'str':
|
||||
textp = cell.v;
|
||||
textp = cell.v == null ? "" : cell.v;
|
||||
ct['office:value-type'] = "string";
|
||||
break;
|
||||
case 'd':
|
||||
|
@ -30028,13 +30032,13 @@ f = "docProps/app.xml";
|
|||
function firstbyte(f,o) {
|
||||
var x = "";
|
||||
switch((o||{}).type || "base64") {
|
||||
case 'buffer': return [f[0], f[1], f[2], f[3]];
|
||||
case 'base64': x = Base64.decode(f.slice(0,24)); break;
|
||||
case 'buffer': return [f[0], f[1], f[2], f[3], f[4], f[5], f[6], f[7]];
|
||||
case 'base64': x = Base64.decode(f.slice(0,12)); break;
|
||||
case 'binary': x = f; break;
|
||||
case 'array': return [f[0], f[1], f[2], f[3]];
|
||||
case 'array': return [f[0], f[1], f[2], f[3], f[4], f[5], f[6], f[7]];
|
||||
default: throw new Error("Unrecognized type " + (o && o.type || "undefined"));
|
||||
}
|
||||
return [x.charCodeAt(0), x.charCodeAt(1), x.charCodeAt(2), x.charCodeAt(3)];
|
||||
return [x.charCodeAt(0), x.charCodeAt(1), x.charCodeAt(2), x.charCodeAt(3), x.charCodeAt(4), x.charCodeAt(5), x.charCodeAt(6), x.charCodeAt(7)];
|
||||
}
|
||||
|
||||
function read_cfb(cfb, opts) {
|
||||
|
@ -30108,7 +30112,7 @@ function readSync(data, opts) {
|
|||
if(!vu.foo) {o=dup(o); o.type='array'; return readSync(ab2a(d), o);}
|
||||
}
|
||||
switch((n = firstbyte(d, o))[0]) {
|
||||
case 0xD0: return read_cfb(CFB.read(d, o), o);
|
||||
case 0xD0: if(n[1] === 0xCF && n[2] === 0x11 && n[3] === 0xE0 && n[4] === 0xA1 && n[5] === 0xB1 && n[6] === 0x1A && n[7] === 0xE1) return read_cfb(CFB.read(d, o), o); break;
|
||||
case 0x09: if(n[1] <= 0x04) return parse_xlscfb(d, o); break;
|
||||
case 0x3C: return parse_xlml(d, o);
|
||||
case 0x49: if(n[1] === 0x44) return read_wb_ID(d, o); break;
|
||||
|
@ -30309,7 +30313,7 @@ function make_json_row(sheet, r, R, cols, header, hdr, dense, o) {
|
|||
else if(raw && v === null) row[hdr[C]] = null;
|
||||
else continue;
|
||||
} else {
|
||||
row[hdr[C]] = raw ? v : format_cell(val,v,o);
|
||||
row[hdr[C]] = raw || (o.rawNumbers && val.t == "n") ? v : format_cell(val,v,o);
|
||||
}
|
||||
if(v != null) isempty = false;
|
||||
}
|
||||
|
@ -30374,7 +30378,7 @@ function make_csv_row(sheet, r, R, cols, fs, rs, FS, o) {
|
|||
if(val == null) txt = "";
|
||||
else if(val.v != null) {
|
||||
isempty = false;
|
||||
txt = ''+format_cell(val, null, o);
|
||||
txt = ''+(o.rawNumbers && val.t == "n" ? val.v : format_cell(val, null, o));
|
||||
for(var i = 0, cc = 0; i !== txt.length; ++i) if((cc = txt.charCodeAt(i)) === fs || cc === rs || cc === 34 || o.forceQuotes) {txt = "\"" + txt.replace(qreg, '""') + "\""; break; }
|
||||
if(txt == "ID") txt = '"ID"';
|
||||
} else if(val.f != null && !val.F) {
|
||||
|
|
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
|
@ -4,7 +4,7 @@
|
|||
/*global global, exports, module, require:false, process:false, Buffer:false, ArrayBuffer:false */
|
||||
var XLSX = {};
|
||||
function make_xlsx_lib(XLSX){
|
||||
XLSX.version = '0.16.3';
|
||||
XLSX.version = '0.16.4';
|
||||
var current_codepage = 1200, current_ansi = 1252;
|
||||
/*global cptable:true, window */
|
||||
if(typeof module !== "undefined" && typeof require !== 'undefined') {
|
||||
|
@ -11278,9 +11278,12 @@ var PtgBinOp = {
|
|||
PtgPower: "^",
|
||||
PtgSub: "-"
|
||||
};
|
||||
|
||||
// List of invalid characters needs to be tested further
|
||||
var quoteCharacters = new RegExp(/[^\w\u4E00-\u9FFF\u3040-\u30FF]/)
|
||||
function formula_quote_sheet_name(sname, opts) {
|
||||
if(!sname && !(opts && opts.biff <= 5 && opts.biff >= 2)) throw new Error("empty sheet name");
|
||||
if(sname.indexOf(" ") > -1) return "'" + sname + "'";
|
||||
if (quoteCharacters.test(sname)) return "'" + sname + "'";
|
||||
return sname;
|
||||
}
|
||||
function get_ixti_raw(supbooks, ixti, opts) {
|
||||
|
@ -14411,6 +14414,7 @@ function parse_ws_bin(data, _opts, idx, rels, wb, themes, styles) {
|
|||
case 0x00AE: /* 'BrtCustomFilter' */
|
||||
case 0x049C: /* 'BrtCustomFilter14' */
|
||||
case 0x01F3: /* 'BrtDRef' */
|
||||
case 0x01FB: /* 'BrtDXF' */
|
||||
case 0x0226: /* 'BrtDrawing' */
|
||||
case 0x00AB: /* 'BrtDynamicFilter' */
|
||||
case 0x00A7: /* 'BrtFilter' */
|
||||
|
@ -20276,7 +20280,7 @@ var write_content_ods = (function() {
|
|||
ct['office:value'] = (cell.v||0);
|
||||
break;
|
||||
case 's': case 'str':
|
||||
textp = cell.v;
|
||||
textp = cell.v == null ? "" : cell.v;
|
||||
ct['office:value-type'] = "string";
|
||||
break;
|
||||
case 'd':
|
||||
|
@ -20871,13 +20875,13 @@ f = "docProps/app.xml";
|
|||
function firstbyte(f,o) {
|
||||
var x = "";
|
||||
switch((o||{}).type || "base64") {
|
||||
case 'buffer': return [f[0], f[1], f[2], f[3]];
|
||||
case 'base64': x = Base64.decode(f.slice(0,24)); break;
|
||||
case 'buffer': return [f[0], f[1], f[2], f[3], f[4], f[5], f[6], f[7]];
|
||||
case 'base64': x = Base64.decode(f.slice(0,12)); break;
|
||||
case 'binary': x = f; break;
|
||||
case 'array': return [f[0], f[1], f[2], f[3]];
|
||||
case 'array': return [f[0], f[1], f[2], f[3], f[4], f[5], f[6], f[7]];
|
||||
default: throw new Error("Unrecognized type " + (o && o.type || "undefined"));
|
||||
}
|
||||
return [x.charCodeAt(0), x.charCodeAt(1), x.charCodeAt(2), x.charCodeAt(3)];
|
||||
return [x.charCodeAt(0), x.charCodeAt(1), x.charCodeAt(2), x.charCodeAt(3), x.charCodeAt(4), x.charCodeAt(5), x.charCodeAt(6), x.charCodeAt(7)];
|
||||
}
|
||||
|
||||
function read_cfb(cfb, opts) {
|
||||
|
@ -20951,7 +20955,7 @@ function readSync(data, opts) {
|
|||
if(!vu.foo) {o=dup(o); o.type='array'; return readSync(ab2a(d), o);}
|
||||
}
|
||||
switch((n = firstbyte(d, o))[0]) {
|
||||
case 0xD0: return read_cfb(CFB.read(d, o), o);
|
||||
case 0xD0: if(n[1] === 0xCF && n[2] === 0x11 && n[3] === 0xE0 && n[4] === 0xA1 && n[5] === 0xB1 && n[6] === 0x1A && n[7] === 0xE1) return read_cfb(CFB.read(d, o), o); break;
|
||||
case 0x09: if(n[1] <= 0x04) return parse_xlscfb(d, o); break;
|
||||
case 0x3C: return parse_xlml(d, o);
|
||||
case 0x49: if(n[1] === 0x44) return read_wb_ID(d, o); break;
|
||||
|
@ -21152,7 +21156,7 @@ function make_json_row(sheet, r, R, cols, header, hdr, dense, o) {
|
|||
else if(raw && v === null) row[hdr[C]] = null;
|
||||
else continue;
|
||||
} else {
|
||||
row[hdr[C]] = raw ? v : format_cell(val,v,o);
|
||||
row[hdr[C]] = raw || (o.rawNumbers && val.t == "n") ? v : format_cell(val,v,o);
|
||||
}
|
||||
if(v != null) isempty = false;
|
||||
}
|
||||
|
@ -21217,7 +21221,7 @@ function make_csv_row(sheet, r, R, cols, fs, rs, FS, o) {
|
|||
if(val == null) txt = "";
|
||||
else if(val.v != null) {
|
||||
isempty = false;
|
||||
txt = ''+format_cell(val, null, o);
|
||||
txt = ''+(o.rawNumbers && val.t == "n" ? val.v : format_cell(val, null, o));
|
||||
for(var i = 0, cc = 0; i !== txt.length; ++i) if((cc = txt.charCodeAt(i)) === fs || cc === rs || cc === 34 || o.forceQuotes) {txt = "\"" + txt.replace(qreg, '""') + "\""; break; }
|
||||
if(txt == "ID") txt = '"ID"';
|
||||
} else if(val.f != null && !val.F) {
|
||||
|
|
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
|
@ -1,6 +1,6 @@
|
|||
{
|
||||
"name": "xlsx",
|
||||
"version": "0.16.3",
|
||||
"version": "0.16.4",
|
||||
"author": "sheetjs",
|
||||
"description": "SheetJS Spreadsheet data parser and writer",
|
||||
"keywords": [
|
||||
|
@ -53,7 +53,7 @@
|
|||
},
|
||||
"repository": {
|
||||
"type": "git",
|
||||
"url": "git://github.com/SheetJS/js-xlsx.git"
|
||||
"url": "git://github.com/SheetJS/sheetjs.git"
|
||||
},
|
||||
"scripts": {
|
||||
"pretest": "git submodule init && git submodule update",
|
||||
|
|
4
test.js
4
test.js
|
@ -1972,7 +1972,7 @@ describe('CSV', function() {
|
|||
assert.equal(get_cell(sheet, "C1").v, '100');
|
||||
});
|
||||
it('should interpret CRLF newlines', function() {
|
||||
var wb = X.read(new Buffer("sep=&\r\n1&2&3\r\n4&5&6"), {type: "buffer"});
|
||||
var wb = X.read("sep=&\r\n1&2&3\r\n4&5&6", {type: "string"});
|
||||
assert.equal(wb.Sheets.Sheet1["!ref"], "A1:C2");
|
||||
});
|
||||
if(!browser || typeof cptable !== 'undefined') it('should honor codepage for binary strings', function() {
|
||||
|
@ -2364,7 +2364,7 @@ describe('encryption', function() {
|
|||
if(!browser || typeof cptable !== 'undefined')
|
||||
describe('multiformat tests', function() {
|
||||
var mfopts = opts;
|
||||
var mft = fs.readFileSync('multiformat.lst','utf-8').split("\n").map(function(x) { return x.trim(); });
|
||||
var mft = fs.readFileSync('multiformat.lst','utf-8').replace(/\r/g,"").split("\n").map(function(x) { return x.trim(); });
|
||||
var csv = true, formulae = false;
|
||||
mft.forEach(function(x) {
|
||||
if(x.charAt(0)!="#") describe('MFT ' + x, function() {
|
||||
|
|
|
@ -768,7 +768,6 @@ describe('API', function() {
|
|||
]);
|
||||
if(assert.deepEqual) assert.deepEqual(data.A2, { l: { Target: 'https://123.com' }, v: 'url', t: 's' });
|
||||
});
|
||||
|
||||
it('decode_range', function() {
|
||||
var _c = "ABC", _r = "123", _C = "DEF", _R = "456";
|
||||
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
/*global global, exports, module, require:false, process:false, Buffer:false, ArrayBuffer:false */
|
||||
var XLSX = {};
|
||||
function make_xlsx_lib(XLSX){
|
||||
XLSX.version = '0.16.3';
|
||||
XLSX.version = '0.16.4';
|
||||
var current_codepage = 1200, current_ansi = 1252;
|
||||
/*:: declare var cptable:any; */
|
||||
/*global cptable:true, window */
|
||||
|
@ -14517,6 +14517,7 @@ function parse_ws_bin(data, _opts, idx, rels, wb/*:WBWBProps*/, themes, styles)/
|
|||
case 0x00AE: /* 'BrtCustomFilter' */
|
||||
case 0x049C: /* 'BrtCustomFilter14' */
|
||||
case 0x01F3: /* 'BrtDRef' */
|
||||
case 0x01FB: /* 'BrtDXF' */
|
||||
case 0x0226: /* 'BrtDrawing' */
|
||||
case 0x00AB: /* 'BrtDynamicFilter' */
|
||||
case 0x00A7: /* 'BrtFilter' */
|
||||
|
@ -20397,7 +20398,7 @@ var write_content_ods/*:{(wb:any, opts:any):string}*/ = (function() {
|
|||
ct['office:value'] = (cell.v||0);
|
||||
break;
|
||||
case 's': case 'str':
|
||||
textp = cell.v;
|
||||
textp = cell.v == null ? "" : cell.v;
|
||||
ct['office:value-type'] = "string";
|
||||
break;
|
||||
case 'd':
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
/*global global, exports, module, require:false, process:false, Buffer:false, ArrayBuffer:false */
|
||||
var XLSX = {};
|
||||
function make_xlsx_lib(XLSX){
|
||||
XLSX.version = '0.16.3';
|
||||
XLSX.version = '0.16.4';
|
||||
var current_codepage = 1200, current_ansi = 1252;
|
||||
/*global cptable:true, window */
|
||||
if(typeof module !== "undefined" && typeof require !== 'undefined') {
|
||||
|
@ -14414,6 +14414,7 @@ function parse_ws_bin(data, _opts, idx, rels, wb, themes, styles) {
|
|||
case 0x00AE: /* 'BrtCustomFilter' */
|
||||
case 0x049C: /* 'BrtCustomFilter14' */
|
||||
case 0x01F3: /* 'BrtDRef' */
|
||||
case 0x01FB: /* 'BrtDXF' */
|
||||
case 0x0226: /* 'BrtDrawing' */
|
||||
case 0x00AB: /* 'BrtDynamicFilter' */
|
||||
case 0x00A7: /* 'BrtFilter' */
|
||||
|
@ -20279,7 +20280,7 @@ var write_content_ods = (function() {
|
|||
ct['office:value'] = (cell.v||0);
|
||||
break;
|
||||
case 's': case 'str':
|
||||
textp = cell.v;
|
||||
textp = cell.v == null ? "" : cell.v;
|
||||
ct['office:value-type'] = "string";
|
||||
break;
|
||||
case 'd':
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
/*global global, exports, module, require:false, process:false, Buffer:false, ArrayBuffer:false */
|
||||
var XLSX = {};
|
||||
function make_xlsx_lib(XLSX){
|
||||
XLSX.version = '0.16.3';
|
||||
XLSX.version = '0.16.4';
|
||||
var current_codepage = 1200, current_ansi = 1252;
|
||||
|
||||
var VALID_ANSI = [ 874, 932, 936, 949, 950 ];
|
||||
|
@ -9087,13 +9087,13 @@ function write_zip(wb/*:Workbook*/, opts/*:WriteOpts*/)/*:ZIP*/ {
|
|||
function firstbyte(f/*:RawData*/,o/*:?TypeOpts*/)/*:Array<number>*/ {
|
||||
var x = "";
|
||||
switch((o||{}).type || "base64") {
|
||||
case 'buffer': return [f[0], f[1], f[2], f[3]];
|
||||
case 'base64': x = Base64.decode(f.slice(0,24)); break;
|
||||
case 'buffer': return [f[0], f[1], f[2], f[3], f[4], f[5], f[6], f[7]];
|
||||
case 'base64': x = Base64.decode(f.slice(0,12)); break;
|
||||
case 'binary': x = f; break;
|
||||
case 'array': return [f[0], f[1], f[2], f[3]];
|
||||
case 'array': return [f[0], f[1], f[2], f[3], f[4], f[5], f[6], f[7]];
|
||||
default: throw new Error("Unrecognized type " + (o && o.type || "undefined"));
|
||||
}
|
||||
return [x.charCodeAt(0), x.charCodeAt(1), x.charCodeAt(2), x.charCodeAt(3)];
|
||||
return [x.charCodeAt(0), x.charCodeAt(1), x.charCodeAt(2), x.charCodeAt(3), x.charCodeAt(4), x.charCodeAt(5), x.charCodeAt(6), x.charCodeAt(7)];
|
||||
}
|
||||
|
||||
function read_cfb(cfb/*:CFBContainer*/, opts/*:?ParseOpts*/)/*:Workbook*/ {
|
||||
|
@ -9168,7 +9168,7 @@ function readSync(data/*:RawData*/, opts/*:?ParseOpts*/)/*:Workbook*/ {
|
|||
if(!vu.foo) {o=dup(o); o.type='array'; return readSync(ab2a(d), o);}
|
||||
}
|
||||
switch((n = firstbyte(d, o))[0]) {
|
||||
case 0xD0: return read_cfb(CFB.read(d, o), o);
|
||||
case 0xD0: if(n[1] === 0xCF && n[2] === 0x11 && n[3] === 0xE0 && n[4] === 0xA1 && n[5] === 0xB1 && n[6] === 0x1A && n[7] === 0xE1) return read_cfb(CFB.read(d, o), o); break;
|
||||
case 0x09: if(n[1] <= 0x04) return parse_xlscfb(d, o); break;
|
||||
case 0x3C: return parse_xlml(d, o);
|
||||
case 0x49: if(n[1] === 0x44) return read_wb_ID(d, o); break;
|
||||
|
|
12
xlsx.mini.js
12
xlsx.mini.js
|
@ -4,7 +4,7 @@
|
|||
/*global global, exports, module, require:false, process:false, Buffer:false, ArrayBuffer:false */
|
||||
var XLSX = {};
|
||||
function make_xlsx_lib(XLSX){
|
||||
XLSX.version = '0.16.3';
|
||||
XLSX.version = '0.16.4';
|
||||
var current_codepage = 1200, current_ansi = 1252;
|
||||
|
||||
var VALID_ANSI = [ 874, 932, 936, 949, 950 ];
|
||||
|
@ -8990,13 +8990,13 @@ f = "docProps/app.xml";
|
|||
function firstbyte(f,o) {
|
||||
var x = "";
|
||||
switch((o||{}).type || "base64") {
|
||||
case 'buffer': return [f[0], f[1], f[2], f[3]];
|
||||
case 'base64': x = Base64.decode(f.slice(0,24)); break;
|
||||
case 'buffer': return [f[0], f[1], f[2], f[3], f[4], f[5], f[6], f[7]];
|
||||
case 'base64': x = Base64.decode(f.slice(0,12)); break;
|
||||
case 'binary': x = f; break;
|
||||
case 'array': return [f[0], f[1], f[2], f[3]];
|
||||
case 'array': return [f[0], f[1], f[2], f[3], f[4], f[5], f[6], f[7]];
|
||||
default: throw new Error("Unrecognized type " + (o && o.type || "undefined"));
|
||||
}
|
||||
return [x.charCodeAt(0), x.charCodeAt(1), x.charCodeAt(2), x.charCodeAt(3)];
|
||||
return [x.charCodeAt(0), x.charCodeAt(1), x.charCodeAt(2), x.charCodeAt(3), x.charCodeAt(4), x.charCodeAt(5), x.charCodeAt(6), x.charCodeAt(7)];
|
||||
}
|
||||
|
||||
function read_cfb(cfb, opts) {
|
||||
|
@ -9070,7 +9070,7 @@ function readSync(data, opts) {
|
|||
if(!vu.foo) {o=dup(o); o.type='array'; return readSync(ab2a(d), o);}
|
||||
}
|
||||
switch((n = firstbyte(d, o))[0]) {
|
||||
case 0xD0: return read_cfb(CFB.read(d, o), o);
|
||||
case 0xD0: if(n[1] === 0xCF && n[2] === 0x11 && n[3] === 0xE0 && n[4] === 0xA1 && n[5] === 0xB1 && n[6] === 0x1A && n[7] === 0xE1) return read_cfb(CFB.read(d, o), o); break;
|
||||
case 0x09: if(n[1] <= 0x04) return parse_xlscfb(d, o); break;
|
||||
case 0x3C: return parse_xlml(d, o);
|
||||
case 0x49: if(n[1] === 0x44) return read_wb_ID(d, o); break;
|
||||
|
|
Loading…
Reference in New Issue