有人知道在哪里可以找到使用Google Sheets API编写google sheet的好例子吗?我使用过https://developers.google.com/sheets/api/quickstart/nodejs,并且能够成功地从Google Sheets中读取,但我在弄清楚如何写入Google Sheets时遇到了麻烦。
发布于 2019-01-15 04:37:16
假设你已经获得了授权的oAuth2Client,下面的方法对我来说是有效的。
const { google } = require('googleapis');
const sheets = google.sheets({ version: 'v4', oAuth2Client});
async function writeSample() {
let title = "NewSpreadsheet";
try {
var spreadsheet = await createSheet(title);
console.log(`Spreadsheet ID: ${spreadsheet.spreadsheetId}`);
range = "Sheet1!A1:D5";
let valueInputOption = "RAW";
values = [
["Item", "Cost", "Stocked", "Ship Date"],
["Wheel", "$20.50", "4", "3/1/2016"],
["Door", "$15", "2", "3/15/2016"],
["Engine", "$100", "1", "30/20/2016"],
["Totals", "=SUM(B2:B4)", "=SUM(C2:C4)", "=MAX(D2:D4)"]
];
var result = await writeSheet(spreadsheet.spreadsheetId, range, valueInputOption, values);
console.log('%d cells updated.', result.updatedCells);
return result;
}
catch (error) {
console.log(error);
}
}
async function createSheet(title) {
var resource = {
properties: {
title
},
};
return sheets.spreadsheets.create({ resource, fields: 'spreadsheetId', })
.then(response => response.data);
}
async function writeSheet(spreadsheetId, range, valueInputOption, values, ) {
resource = {
values
};
return sheets.spreadsheets.values.update({ spreadsheetId, range, valueInputOption, resource, })
.then(response => response.data);
}
发布于 2017-01-26 10:49:55
sheets API具有关于google Sheets上的Writing a single range的示例。但是有一些概念你必须理解,比如A1 Notation。
除了指南中的示例之外,我还编写了JS代码来演示在此SO thread上的工作表上的编写。这将是有帮助的,因为NodejS也使用JS。
发布于 2017-08-05 20:57:43
是的,我也读过noogui的参考资料:你需要一段时间才能完成一个程序。
但我已经成功地完成了以下功能:
appedData ()
deleteRow () (I can post them if you wish)
我需要在一行中插入:温度、湿度和压力,并删除最旧的行(第1行)。我将这两个函数放在同一行中,其中listMajors(...)最初是(在快速入门,js中)。然后把它放到一个循环中:坏主意:这些函数是异步的,所以你不知道一个函数什么时候结束,另一个函数什么时候开始,一个console.log()
打印显示:
appedData ()
deleteRow ()
appedData ()
deleteRow ()
deleteRow ()
appedData ()
deleteRow ()
appedData ()
appedData ()
因此,有时appedData()和deleteRow()按实数顺序排列,有时按顺序排列两次或更多次appedData(),有时按顺序排列两次或更多次deleteRow()。
因此,我将quickstart.js改为同步函数,而不是异步函数:我删除了用fs.readFileSync
替换fs.readFile
的回调,它似乎可以工作
https://stackoverflow.com/questions/41860818
复制相似问题