forked from sheetjs/sheetjs
		
	- option bookFiles controls whether zip files and keys are written to object *** Default has been flipped from "true" to "false" - updated SSF to 0.5.8 - updated test_files to 20140216 (tests also look at 2013 XLSB) - added dist files (make dist)
		
			
				
	
	
		
			71 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			71 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
/* [MS-XLSB] 2.4.301 BrtBundleSh */
 | 
						|
var parse_BrtBundleSh = function(data, length) {
 | 
						|
	var z = {};
 | 
						|
	z.hsState = data.read_shift(4); //ST_SheetState
 | 
						|
	z.iTabID = data.read_shift(4);
 | 
						|
	z.strRelID = parse_RelID(data,length-8);
 | 
						|
	z.name = parse_XLWideString(data);
 | 
						|
	return z;
 | 
						|
};
 | 
						|
 | 
						|
/* [MS-XLSB] 2.1.7.60 Workbook */
 | 
						|
var parse_wb_bin = function(data) {
 | 
						|
	var wb = { AppVersion:{}, WBProps:{}, WBView:[], Sheets:[], CalcPr:{}, xmlns: "" };
 | 
						|
	var pass = false, z;
 | 
						|
 | 
						|
	recordhopper(data, function(val, R) {
 | 
						|
		switch(R.n) {
 | 
						|
			case 'BrtBundleSh': wb.Sheets.push(val); break;
 | 
						|
 | 
						|
			case 'BrtBeginBook': break;
 | 
						|
			case 'BrtFileVersion': break;
 | 
						|
			case 'BrtWbProp': break;
 | 
						|
			case 'BrtACBegin': break;
 | 
						|
			case 'BrtAbsPath15': break;
 | 
						|
			case 'BrtACEnd': break;
 | 
						|
			/*case 'BrtBookProtectionIso': break;*/
 | 
						|
			case 'BrtBookProtection': break;
 | 
						|
			case 'BrtBeginBookViews': break;
 | 
						|
			case 'BrtBookView': break;
 | 
						|
			case 'BrtEndBookViews': break;
 | 
						|
			case 'BrtBeginBundleShs': break;
 | 
						|
			case 'BrtEndBundleShs': break;
 | 
						|
			case 'BrtBeginFnGroup': break;
 | 
						|
			case 'BrtEndFnGroup': break;
 | 
						|
			case 'BrtBeginExternals': break;
 | 
						|
			case 'BrtSupSelf': break;
 | 
						|
			case 'BrtSupBookSrc': break;
 | 
						|
			case 'BrtExternSheet': break;
 | 
						|
			case 'BrtEndExternals': break;
 | 
						|
			case 'BrtName': break;
 | 
						|
			case 'BrtCalcProp': break;
 | 
						|
			case 'BrtUserBookView': break;
 | 
						|
			case 'BrtBeginPivotCacheIDs': break;
 | 
						|
			case 'BrtBeginPivotCacheID': break;
 | 
						|
			case 'BrtEndPivotCacheID': break;
 | 
						|
			case 'BrtEndPivotCacheIDs': break;
 | 
						|
			case 'BrtWebOpt': break;
 | 
						|
			case 'BrtFileRecover': break;
 | 
						|
			/*case 'BrtBeginWebPubItems': break;
 | 
						|
			case 'BrtBeginWebPubItem': break;
 | 
						|
			case 'BrtEndWebPubItem': break;
 | 
						|
			case 'BrtEndWebPubItems': break;*/
 | 
						|
			case 'BrtFRTBegin': pass = true; break;
 | 
						|
			case 'BrtFRTEnd': pass = false; break;
 | 
						|
			case 'BrtEndBook': break;
 | 
						|
			//default: if(!pass) throw new Error("Unexpected record " + R.n);
 | 
						|
		}
 | 
						|
	});
 | 
						|
 | 
						|
	/* defaults */
 | 
						|
	for(z in WBPropsDef) if(typeof wb.WBProps[z] === 'undefined') wb.WBProps[z] = WBPropsDef[z];
 | 
						|
	for(z in CalcPrDef) if(typeof wb.CalcPr[z] === 'undefined') wb.CalcPr[z] = CalcPrDef[z];
 | 
						|
 | 
						|
	wb.WBView.forEach(function(w){for(var z in WBViewDef) if(typeof w[z] === 'undefined') w[z]=WBViewDef[z]; });
 | 
						|
	wb.Sheets.forEach(function(w){for(var z in SheetDef) if(typeof w[z] === 'undefined') w[z]=SheetDef[z]; });
 | 
						|
 | 
						|
	_ssfopts.date1904 = parsexmlbool(wb.WBProps.date1904, 'date1904');
 | 
						|
 | 
						|
	return wb;
 | 
						|
};
 |