forked from sheetjs/sheetjs
		
	
		
			
				
	
	
		
			44 lines
		
	
	
		
			1.0 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
			
		
		
	
	
			44 lines
		
	
	
		
			1.0 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
| const bts = [
 | |
| 	"xlsx",
 | |
| 	"xlsb",
 | |
| 	"xls",
 | |
| 	"csv",
 | |
| 	"fods",
 | |
| 	"xlml",
 | |
| 	"slk"
 | |
| ];
 | |
| export default function doit(XLSX: any, tag: string) {
 | |
| 	const path = "number_format_greek.xls";
 | |
| 	let workbook: any;
 | |
| 
 | |
| 	/* read file */
 | |
| 	try {
 | |
| 		workbook = XLSX.readFile(path);
 | |
| 	} catch(e) {
 | |
| 		console.log(e);
 | |
| 		console.error("Cannot use readFile, falling back to read");
 | |
| 		const rawdata = Deno.readFileSync(path);
 | |
| 		workbook = XLSX.read(rawdata, {type: "buffer"});
 | |
| 	}
 | |
| 
 | |
| 	/* write file */
 | |
| 	try {
 | |
| 		bts.forEach(bt => {
 | |
| 			console.log(bt);
 | |
| 			XLSX.writeFile(workbook, `${tag}.${bt}`);
 | |
| 		});
 | |
| 	} catch(e) {
 | |
| 		console.log(e);
 | |
| 		console.error("Cannot use writeFile, falling back to write");
 | |
| 		bts.forEach(bt => {
 | |
| 			console.log(bt);
 | |
| 			const buf = XLSX.write(workbook, {type: "buffer", bookType: bt});
 | |
| 			if(typeof buf == "string") {
 | |
| 				const nbuf = new Uint8Array(buf.length);
 | |
| 				for(let i = 0; i < buf.length; ++i) nbuf[i] = buf.charCodeAt(i);
 | |
| 				Deno.writeFileSync(`${tag}.${bt}`, nbuf);
 | |
| 			} else Deno.writeFileSync(`${tag}.${bt}`, new Uint8Array(buf));
 | |
| 		});
 | |
| 	}
 | |
| }
 |