forked from sheetjs/sheetjs
		
	
		
			
				
	
	
		
			25 lines
		
	
	
		
			915 B
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
			
		
		
	
	
			25 lines
		
	
	
		
			915 B
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
| import * as CFBModule from 'cfb';
 | |
| type CFBType = typeof CFBModule;
 | |
| declare var CFB: CFBType;
 | |
| 
 | |
| var CT_VBA = "application/vnd.ms-office.vbaProject";
 | |
| function make_vba_xls(cfb: CFBModule.CFB$Container) {
 | |
| 	var newcfb = CFB.utils.cfb_new({root:"R"});
 | |
| 	cfb.FullPaths.forEach(function(p, i) {
 | |
| 		if(p.slice(-1) === "/" || !p.match(/_VBA_PROJECT_CUR/)) return;
 | |
| 		var newpath = p.replace(/^[^\/]*/,"R").replace(/\/_VBA_PROJECT_CUR\u0000*/, "");
 | |
| 		CFB.utils.cfb_add(newcfb, newpath, cfb.FileIndex[i].content);
 | |
| 	});
 | |
| 	return CFB.write(newcfb);
 | |
| }
 | |
| 
 | |
| function fill_vba_xls(cfb: CFBModule.CFB$Container, vba: CFBModule.CFB$Container): void {
 | |
| 	vba.FullPaths.forEach(function(p, i) {
 | |
| 		if(i == 0) return;
 | |
| 		var newpath = p.replace(/[^\/]*[\/]/, "/_VBA_PROJECT_CUR/");
 | |
| 		if(newpath.slice(-1) !== "/") CFB.utils.cfb_add(cfb, newpath, vba.FileIndex[i].content);
 | |
| 	});
 | |
| }
 | |
| 
 | |
| var VBAFMTS: string[] = [ "xlsb", "xlsm", "xlam", "biff8", "xla" ];
 |