forked from sheetjs/docs.sheetjs.com
		
	
		
			
				
	
	
		
			33 lines
		
	
	
		
			876 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			33 lines
		
	
	
		
			876 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| /* Load SQLite3 connector library */
 | |
| import { Database } from "bun:sqlite";
 | |
| 
 | |
| /* Load SheetJS library */
 | |
| import * as XLSX from "xlsx";
 | |
| import * as fs from "fs";
 | |
| XLSX.set_fs(fs);
 | |
| 
 | |
| /* Initialize database */
 | |
| var db = Database.open("chinook.db");
 | |
| 
 | |
| /* Create new workbook */
 | |
| var wb = XLSX.utils.book_new();
 | |
| 
 | |
| /* Get list of table names */
 | |
| var sql = db.prepare("SELECT name FROM sqlite_master WHERE type='table'");
 | |
| var result = sql.all();
 | |
| 
 | |
| /* Loop across each name */
 | |
| result.forEach(function(row) {
 | |
|   /* Get first 100K rows */
 | |
|   var aoo = db.prepare("SELECT * FROM '" + row.name + "' LIMIT 100000").all();
 | |
|   if(aoo.length > 0) {
 | |
|     /* Create Worksheet from the row objects */
 | |
|     var ws = XLSX.utils.json_to_sheet(aoo, {dense: true});
 | |
|     /* Add to Workbook */
 | |
|     XLSX.utils.book_append_sheet(wb, ws, row.name);
 | |
|   }
 | |
| });
 | |
| 
 | |
| /* Write File */
 | |
| XLSX.writeFile(wb, "SheetJSQLiteBun.xlsx");
 |