forked from sheetjs/sheetjs
SheetJS
d15b81e0e9
- very basic XLSX / XLSM write support with roundtrip tests (XLSB stubs) - reorganized source tree - new XLSB range check ensures that A1 is not emitted for empty sheets - SSF table emitted in output (consistent with js-xls) - CLI supports writing Backwards-incompatible changes: o new Property aliases (see CORE_PROPS and EXT_PROPS) o FILETIME custom properties parsed as JS Dates o `xlsx2csv` -> `xlsx` (and `bin/xlsx{2csv,}.njs`)
21 lines
671 B
JavaScript
21 lines
671 B
JavaScript
/* [MS-XLSB] 2.1.4 Record */
|
|
var recordhopper = function(data, cb, opts) {
|
|
var tmpbyte, cntbyte, length;
|
|
prep_blob(data, data.l || 0);
|
|
while(data.l < data.length) {
|
|
var RT = data.read_shift(1);
|
|
if(RT & 0x80) RT = (RT & 0x7F) + ((data.read_shift(1) & 0x7F)<<7);
|
|
var R = RecordEnum[RT] || RecordEnum[0xFFFF];
|
|
tmpbyte = data.read_shift(1);
|
|
length = tmpbyte & 0x7F;
|
|
for(cntbyte = 1; cntbyte <4 && (tmpbyte & 0x80); ++cntbyte) length += ((tmpbyte = data.read_shift(1)) & 0x7F)<<(7*cntbyte);
|
|
var d = R.f(data, length, opts);
|
|
if(cb(d, R, RT)) return;
|
|
}
|
|
};
|
|
|
|
/* control buffer usage for fixed-length buffers */
|
|
var blobhopper = function() {
|
|
var bufs = [];
|
|
};
|