40 lines
		
	
	
		
			925 B
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			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
 |