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