【问题标题】:"Update" method on google sheets API谷歌表格 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")
    }
  })

}

【问题讨论】:

    标签: node.js google-sheets-api spreadsheet


    【解决方案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");
      }
    });

    参考:

    【讨论】:

    • 好的,先生,感谢您回答我的问题,我昨天尝试使用 append,但我遇到了一个小问题,正如你所知,append 只会在每张纸的最后一张之后添加一个新行,我的意思是那里的列 A是像 Apples Mangoes 这样的值,在此之后有一个单元格间隙,然后我有我的香蕉,现在 append 会跳过中间的那个间隙并在香蕉之后添加新值。但我不希望这种情况发生,我希望我的系统先填补这个空白,然后在最后一个值之后添加。
    • @Tech And Gaming 感谢您的回复。我不得不为我糟糕的英语水平道歉。很遗憾,我无法理解您的回复。你能用一张图片解释一下你目前的情况吗?借此,我想确认一下。
    • 我不知道如何在这里发布图片
    • @Tech And Gaming 感谢您的回复。我带来的不便表示歉意。在这种情况下,您能否提供包含您期望的输入和输出的示例电子表格?借此,我想确认您的情况。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-05-19
    • 2020-07-02
    • 1970-01-01
    • 2017-06-11
    • 2017-11-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多