forked from sheetjs/docs.sheetjs.com
		
	
		
			
	
	
		
			40 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
		
		
			
		
	
	
			40 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| 
								 | 
							
								import { google } from "googleapis";
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								import { set_fs, writeFile, utils } from 'xlsx';
							 | 
						||
| 
								 | 
							
								import * as fs from 'fs';
							 | 
						||
| 
								 | 
							
								set_fs(fs);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								/* Change this import statement to point to the credentials JSON file */
							 | 
						||
| 
								 | 
							
								import creds from './sheetjs-test-726272627262.json' assert { type: "json" };
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								/* Change this to the spreadsheet ID */
							 | 
						||
| 
								 | 
							
								const id = "SOME-SPREADSHEETJS-ID";
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								/* connect to google services */
							 | 
						||
| 
								 | 
							
								const jwt = new google.auth.JWT({
							 | 
						||
| 
								 | 
							
								  email: creds.client_email,
							 | 
						||
| 
								 | 
							
								  key: creds.private_key,
							 | 
						||
| 
								 | 
							
								  scopes: [
							 | 
						||
| 
								 | 
							
								    'https://www.googleapis.com/auth/spreadsheets',
							 | 
						||
| 
								 | 
							
								    'https://www.googleapis.com/auth/drive.file',
							 | 
						||
| 
								 | 
							
								  ]
							 | 
						||
| 
								 | 
							
								});
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								const sheets = google.sheets({ version: "v4", auth: jwt });
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								/* get existing sheets */
							 | 
						||
| 
								 | 
							
								const wsheet = await sheets.spreadsheets.get({spreadsheetId: id});
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								/* create a workbook */
							 | 
						||
| 
								 | 
							
								const wb = utils.book_new();
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								for(let sheet of wsheet.data.sheets) {
							 | 
						||
| 
								 | 
							
								  const name = sheet.properties.title;
							 | 
						||
| 
								 | 
							
								  const res = await sheets.spreadsheets.values.get({
							 | 
						||
| 
								 | 
							
								    spreadsheetId: id,
							 | 
						||
| 
								 | 
							
								    range: `'${name}'`
							 | 
						||
| 
								 | 
							
								  });
							 | 
						||
| 
								 | 
							
								  utils.book_append_sheet(wb, utils.aoa_to_sheet(res.data.values), name);
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								writeFile(wb, "SheetJSExport.xlsb");
							 |