forked from sheetjs/sheetjs
SheetJS
6bc24374b9
- parsexmltag and other hot functions now better optimized for v8 - monomorphic functions (different types -> different funcs) - more efficient decode_range implementation when source is trusted - regular expressions cached and simplified without breaking correctness - more efficient utf8 techniques when available - XLSX: large functions broken down into sub-functions (e.g. `parse_ws_xml`) - XLSB: avoid unnecessary binds - XLSB: assume no exotic codepage exists (no one else tries to write XLSB) - demo exposes rABS / worker / transferable options - more tests - jszip updated to 2.3.0 - SSF updated to 0.8.1 - codepage updated to 1.3.1
47 lines
1.4 KiB
JavaScript
47 lines
1.4 KiB
JavaScript
/* [MS-XLSB] 2.4.28 BrtBeginComment */
|
|
function parse_BrtBeginComment(data, length) {
|
|
var out = {};
|
|
out.iauthor = data.read_shift(4);
|
|
var rfx = parse_UncheckedRfX(data, 16);
|
|
out.rfx = rfx.s;
|
|
out.ref = encode_cell(rfx.s);
|
|
data.l += 16; /*var guid = parse_GUID(data); */
|
|
return out;
|
|
}
|
|
|
|
/* [MS-XLSB] 2.4.324 BrtCommentAuthor */
|
|
var parse_BrtCommentAuthor = parse_XLWideString;
|
|
|
|
/* [MS-XLSB] 2.4.325 BrtCommentText */
|
|
var parse_BrtCommentText = parse_RichStr;
|
|
|
|
/* [MS-XLSB] 2.1.7.8 Comments */
|
|
function parse_comments_bin(data, opts) {
|
|
var out = [];
|
|
var authors = [];
|
|
var c = {};
|
|
var pass = false;
|
|
recordhopper(data, function hopper_cmnt(val, R, RT) {
|
|
switch(R.n) {
|
|
case 'BrtCommentAuthor': authors.push(val); break;
|
|
case 'BrtBeginComment': c = val; break;
|
|
case 'BrtCommentText': c.t = val.t; c.h = val.h; c.r = val.r; break;
|
|
case 'BrtEndComment':
|
|
c.author = authors[c.iauthor];
|
|
delete c.iauthor;
|
|
if(opts.sheetRows && opts.sheetRows <= c.rfx.r) break;
|
|
delete c.rfx; out.push(c); break;
|
|
case 'BrtBeginComments': break;
|
|
case 'BrtEndComments': break;
|
|
case 'BrtBeginCommentAuthors': break;
|
|
case 'BrtEndCommentAuthors': break;
|
|
case 'BrtBeginCommentList': break;
|
|
case 'BrtEndCommentList': break;
|
|
default: if(!pass || opts.WTF) throw new Error("Unexpected record " + RT + " " + R.n);
|
|
}
|
|
});
|
|
return out;
|
|
}
|
|
|
|
function write_comments_bin(data, opts) { }
|