forked from sheetjs/docs.sheetjs.com
		
	
		
			
	
	
		
			31 lines
		
	
	
		
			935 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
		
		
			
		
	
	
			31 lines
		
	
	
		
			935 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| 
								 | 
							
								import { writeFile, set_fs, utils } from 'xlsx';
							 | 
						||
| 
								 | 
							
								import * as fs from 'fs'; set_fs(fs);
							 | 
						||
| 
								 | 
							
								import { MongoClient } from 'mongodb';
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								const url = 'mongodb://localhost:27017/sheetjs';
							 | 
						||
| 
								 | 
							
								const db_name = 'sheetjs';
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								/* Connect to mongodb server */
							 | 
						||
| 
								 | 
							
								const client = await MongoClient.connect(url, { useUnifiedTopology: true });
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								/* Sample data table */
							 | 
						||
| 
								 | 
							
								const db = client.db(db_name);
							 | 
						||
| 
								 | 
							
								try { await db.collection('pres').drop(); } catch(e) {}
							 | 
						||
| 
								 | 
							
								const pres = db.collection('pres');
							 | 
						||
| 
								 | 
							
								await pres.insertMany([
							 | 
						||
| 
								 | 
							
								  { name: "Barack Obama", idx: 44 },
							 | 
						||
| 
								 | 
							
								  { name: "Donald Trump", idx: 45 },
							 | 
						||
| 
								 | 
							
								  { name: "Joseph Biden", idx: 46 }
							 | 
						||
| 
								 | 
							
								], {ordered: true});
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								/* Create worksheet from collection */
							 | 
						||
| 
								 | 
							
								const aoo = await pres.find({}, {projection:{_id:0}}).toArray();
							 | 
						||
| 
								 | 
							
								const ws = utils.json_to_sheet(aoo);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								/* Export to XLSX */
							 | 
						||
| 
								 | 
							
								const wb = utils.book_new();
							 | 
						||
| 
								 | 
							
								utils.book_append_sheet(wb, ws, "Presidents");
							 | 
						||
| 
								 | 
							
								writeFile(wb, "SheetJSMongoCRUD.xlsx");
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								/* Close connection */
							 | 
						||
| 
								 | 
							
								client.close();
							 |