40 lines
		
	
	
		
			921 B
		
	
	
	
		
			Bash
		
	
	
	
	
	
		
		
			
		
	
	
			40 lines
		
	
	
		
			921 B
		
	
	
	
		
			Bash
		
	
	
	
	
	
|  | #!/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 | ||
|  | 
 | ||
|  | npm 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 | ||
|  | 
 | ||
|  | node SheetJSAlaSQL.js | ||
|  | 
 | ||
|  | npx xlsx-cli SheetJSAlaSQL1.xlsx |