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