docs.sheetjs.com/docz/static/gsheet/dump.mjs

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