docs.sheetjs.com/tests/data/alasql-bun.sh
2025-04-23 20:30:01 -04:00

40 lines
925 B
Bash
Executable File

#!/bin/bash
# https://docs.sheetjs.com/docs/demos/data/alasql/#nodejs-example
cd /tmp
mkdir sheetjs-alasql
cd sheetjs-alasql
cat <<EOF >package.json
{
"overrides": {
"xlsx": "https://cdn.sheetjs.com/xlsx-latest/xlsx-latest.tgz"
}
}
EOF
bun i --save alasql@3.1.0 https://cdn.sheetjs.com/xlsx-latest/xlsx-latest.tgz
curl -L -O https://docs.sheetjs.com/pres.numbers
cat <<EOF >SheetJSAlaSQL.js
const { promise: alasql } = require("alasql");
(async() => {
/* read data from spreadsheet to JS */
const data = await alasql(\`
SELECT \\\`Name\\\`, \\\`Index\\\`
FROM XLSX("pres.numbers", {autoExt:false})
WHERE \\\`Index\\\` < 45
\`);
console.log(data);
/* write data from JS to spreadsheet */
data.push({ Name: "SheetJS Dev", Index: 47 });
await alasql(\`SELECT * INTO XLSX("SheetJSAlaSQL1.xlsx") FROM ?\`, [data]);
})();
EOF
bun run SheetJSAlaSQL.js
bunx xlsx-cli SheetJSAlaSQL1.xlsx