forked from sheetjs/docs.sheetjs.com
		
	
		
			
	
	
		
			25 lines
		
	
	
		
			879 B
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
		
		
			
		
	
	
			25 lines
		
	
	
		
			879 B
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
|  | #!/usr/bin/env -S deno run --allow-read | ||
|  | /*! sheetjs (C) 2013-present SheetJS -- https://sheetjs.com */ | ||
|  | // @deno-types="https://cdn.sheetjs.com/xlsx-latest/package/types/index.d.ts"
 | ||
|  | import * as XLSX from 'https://cdn.sheetjs.com/xlsx-latest/package/xlsx.mjs'; | ||
|  | import * as cptable from 'https://cdn.sheetjs.com/xlsx-latest/package/dist/cpexcel.full.mjs'; | ||
|  | XLSX.set_cptable(cptable); | ||
|  | 
 | ||
|  | /* Read and parse workbook */ | ||
|  | const filename = Deno.args[0]; | ||
|  | if(!filename) { | ||
|  |   console.error("usage: sheet2csv <filename> [sheetname]"); | ||
|  |   Deno.exit(1); | ||
|  | } | ||
|  | const workbook = XLSX.readFile(filename); | ||
|  | 
 | ||
|  | /* Find worksheet */ | ||
|  | const sheetname = Deno.args[1] || workbook.SheetNames[0]; | ||
|  | if(!workbook.Sheets[sheetname]) { | ||
|  |   console.error(`error: workbook missing sheet ${sheetname}`); | ||
|  |   Deno.exit(1); | ||
|  | } | ||
|  | 
 | ||
|  | /* Generate CSV and print to stdout */ | ||
|  | console.log(XLSX.utils.sheet_to_csv(workbook.Sheets[sheetname])); |