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