forked from sheetjs/docs.sheetjs.com
		
	
		
			
	
	
		
			37 lines
		
	
	
		
			907 B
		
	
	
	
		
			Bash
		
	
	
	
	
	
		
		
			
		
	
	
			37 lines
		
	
	
		
			907 B
		
	
	
	
		
			Bash
		
	
	
	
	
	
| 
								 | 
							
								#!/bin/bash
							 | 
						||
| 
								 | 
							
								# https://docs.sheetjs.com/docs/demos/net/dom#jsdom
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								cd /tmp
							 | 
						||
| 
								 | 
							
								rm -rf sheetjs-jsdom
							 | 
						||
| 
								 | 
							
								mkdir sheetjs-jsdom
							 | 
						||
| 
								 | 
							
								cd sheetjs-jsdom
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								npm i --save https://cdn.sheetjs.com/xlsx-0.20.2/xlsx-0.20.2.tgz
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								cat >SheetJSDOM.js <<EOF
							 | 
						||
| 
								 | 
							
								const XLSX = require("xlsx");
							 | 
						||
| 
								 | 
							
								const { readFileSync } = require("fs");
							 | 
						||
| 
								 | 
							
								const { JSDOM } = require("jsdom");
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								/* obtain HTML string.  This example reads from SheetJSTable.html */
							 | 
						||
| 
								 | 
							
								const html_str = readFileSync("SheetJSTable.html", "utf8");
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								/* get first TABLE element */
							 | 
						||
| 
								 | 
							
								const doc = new JSDOM(html_str).window.document.querySelector("table");
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								/* generate workbook */
							 | 
						||
| 
								 | 
							
								const workbook = XLSX.utils.table_to_book(doc);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								XLSX.writeFile(workbook, "SheetJSDOM.xlsx");
							 | 
						||
| 
								 | 
							
								EOF
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								curl -LO https://docs.sheetjs.com/dom/SheetJSTable.html
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								for n in {10..24}; do
							 | 
						||
| 
								 | 
							
								  rm -f SheetJSDom.xlsx
							 | 
						||
| 
								 | 
							
								  npm i --save jsdom@$n
							 | 
						||
| 
								 | 
							
								  npm ls | grep jsdom
							 | 
						||
| 
								 | 
							
								  node SheetJSDom.js
							 | 
						||
| 
								 | 
							
								  npx -y xlsx-cli SheetJSDom.xlsx | head -n 3
							 | 
						||
| 
								 | 
							
								done
							 |