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