docs.sheetjs.com/tests/cli/txiki.sh

40 lines
993 B
Bash
Executable File

#!/bin/bash
# https://docs.sheetjs.com/docs/demos/cli/txiki
cd /tmp
rm -rf sheetjs-txiki
mkdir sheetjs-txiki
cd sheetjs-txiki
curl -o pres.numbers https://docs.sheetjs.com/pres.numbers
cat >sheet2csv.js <<'EOF'
const XLSX = require("./xlsx.full.min");
/* tjs.args[1] is the first argument to the script */
const filename = tjs.args[1];
/* read and parse file */
const data = await tjs.readFile(filename);
const wb = XLSX.read(data);
/* generate CSV of first sheet */
const ws = wb.Sheets[wb.SheetNames[0]];
const csv = XLSX.utils.sheet_to_csv(ws);
/* print to terminal */
console.log(csv);
EOF
curl -LO https://cdn.sheetjs.com/xlsx-latest/package/dist/xlsx.full.min.js
## NOTE: these steps are for darwin
curl -LO https://github.com/saghul/txiki.js/releases/download/v24.12.0/txiki-macos.zip
unzip txiki-macos.zip
mv txiki-macos/tjs .
chmod +x tjs
npx -y esbuild sheet2csv.js --bundle --outfile=bundle.js --platform=neutral
./tjs compile bundle.js sheet2csv
./sheet2csv pres.numbers