forked from sheetjs/sheetjs
		
	- 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 = [];
 | 
						|
};
 |