forked from sheetjs/docs.sheetjs.com
		
	
		
			
	
	
		
			23 lines
		
	
	
		
			774 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
		
		
			
		
	
	
			23 lines
		
	
	
		
			774 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
|  | const XLSX = require("xlsx"); | ||
|  | const { readFileSync } = require("fs"); | ||
|  | const { Window } = require("happy-dom"); | ||
|  | 
 | ||
|  | /* obtain HTML string.  This example reads from SheetJSTable.html */ | ||
|  | const html_str = readFileSync("SheetJSTable.html", "utf8"); | ||
|  | 
 | ||
|  | /* get table element */ | ||
|  | const window = new Window({ | ||
|  |     url: "https://localhost:8080", | ||
|  |     width: 1024, | ||
|  |     height: 768 | ||
|  | }); | ||
|  | window.document.body.innerHTML = html_str; | ||
|  | const tbl = window.document.body.getElementsByTagName("table")[0]; | ||
|  | 
 | ||
|  | /* add `rows` and `cells` properties */ | ||
|  | tbl.rows = Array.from(tbl.getElementsByTagName("tr")); | ||
|  | tbl.rows.forEach(row => row.cells = Array.from(row.getElementsByTagName("td"))) | ||
|  | 
 | ||
|  | /* generate workbook */ | ||
|  | const workbook = XLSX.utils.table_to_book(tbl); | ||
|  | XLSX.writeFile(workbook, "SheetJSHappyDOM.xlsx"); |