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