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)); | ||
|  | 		}); | ||
|  | 	} | ||
|  | } |