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"); |