38 lines
1.0 KiB
JavaScript
38 lines
1.0 KiB
JavaScript
import { google } from "googleapis";
|
|
|
|
import { read, utils } from 'xlsx';
|
|
|
|
/* 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 drive = google.drive({ version: "v3", auth: jwt });
|
|
|
|
/* get XLSX export */
|
|
const file = await drive.files.export({
|
|
mimeType: "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",
|
|
fileId: id
|
|
});
|
|
const ab = await file.data.arrayBuffer();
|
|
|
|
/* parse with SheetJS */
|
|
const wb = read(ab);
|
|
|
|
/* print CSV data from each worksheet */
|
|
wb.SheetNames.forEach(n => {
|
|
console.log(`#### ${n}`);
|
|
console.log(utils.sheet_to_csv(wb.Sheets[n]));
|
|
console.log("");
|
|
}) |