谷歌表格 API 上的“更新”方法
Posted
技术标签:
【中文标题】谷歌表格 API 上的“更新”方法【英文标题】:"Update" method on google sheets API 【发布时间】:2020-10-08 13:37:41 【问题描述】:我正面临 google sheet API 错误的“更新”方法。发生的事情是,当我尝试在我的电子表格中的单元格中添加值时,第一个值正常运行,但是当我尝试在同一范围内添加另一个值时,它只会覆盖前一个单元格并且不会进入新的排。注意我使用的是 Node.js。我正在制作一个不和谐机器人的应用程序。我正在尝试从机器人中添加值,这就是为什么您可以在我的代码中看到参数的原因。
async function gsrun3(cl, connection)
const sheets = google.sheets(
version: 'v4',
auth: cl
);
let values = [
[
args[0]
],
];
let resource =
values
;
const opt3 =
spreadsheetId: '1Nqddy8X63Ao7JIgjIqkf-bADSU_7TAeFPAQROxgs1uw',
range: args[1] + "!G2:G",
valueInputOption: 'RAW',
resource,
sheets.spreadsheets.values.update(opt3, (err, result) =>
if (err)
console.log(err)
else
console.log("Values added")
)
【问题讨论】:
【参考方案1】:我相信你的目标如下。
您希望在使用 Sheets API 运行脚本时将值附加到“G”列的新行。 您希望使用 googleapis for Node.js 来实现此目的。 您已经能够使用 Sheets API 为 Google 电子表格获取和输入值。修改点:
在这种情况下,我想建议在Sheets API 中使用“spreadsheets.values.append”的方法,而不是“spreadsheets.values.update”的方法。 这样,当脚本运行时,值将附加到新行。当以上几点反映到你的脚本中时,它变成如下。
修改脚本:
从:sheets.spreadsheets.values.update(opt3, (err, result) =>
到:
sheets.spreadsheets.values.append(opt3, (err, result) =>
运行此修改后的脚本时,值将附加到“G”列。
你的整个脚本如下。
const sheets = google.sheets(
version: "v4",
auth: cl,
);
let values = [[args[0]]];
let resource =
values,
;
const opt3 =
spreadsheetId: "1Nqddy8X63Ao7JIgjIqkf-bADSU_7TAeFPAQROxgs1uw",
range: args[1] + "!G2:G",
valueInputOption: "RAW",
resource,
;
sheets.spreadsheets.values.append(opt3, (err, result) =>
if (err)
console.log(err);
else
console.log("Values added");
);
参考:
Method: spreadsheets.values.append【讨论】:
好的,先生,感谢您回答我的问题,我昨天尝试使用 append,但我遇到了一个小问题,正如你所知,append 只会在每张纸的最后一张之后添加一个新行,我的意思是那里的列 A是像 Apples Mangoes 这样的值,在此之后有一个单元格间隙,然后我有我的香蕉,现在 append 会跳过中间的那个间隙并在香蕉之后添加新值。但我不希望这种情况发生,我希望我的系统先填补这个空白,然后在最后一个值之后添加。 @Tech And Gaming 感谢您的回复。我不得不为我糟糕的英语水平道歉。很遗憾,我无法理解您的回复。你能用一张图片解释一下你目前的情况吗?借此,我想确认一下。 我不知道如何在这里发布图片 @Tech And Gaming 感谢您的回复。我带来的不便表示歉意。在这种情况下,您能否提供包含您期望的输入和输出的示例电子表格?借此,我想确认您的情况。以上是关于谷歌表格 API 上的“更新”方法的主要内容,如果未能解决你的问题,请参考以下文章