使用Google Sheets API有条件地更新数据的子集

问题描述 投票:0回答:1

我有一个用于编辑数据表的桌面应用程序。每行都通过时间戳跟踪其最新更改。另外,还有一个Google Spreadsheet包含该数据表,其他人直接在浏览器中使用该表来编辑数据。在电子表格上运行一个onEdit脚本,该脚本会更新每行上最后更改的时间戳。

桌面应用程序现在使用Google Spreadsheet API来下载工作表并将数据合并到本地数据中,方法是只使用带有新时间戳的行,并且可以正常工作。

我想添加让桌面应用自动将其数据写入Google Spreadsheet的选项,但不覆盖所有行,而是仅覆盖时间戳较旧的行。

我有一个可用的版本,可以使用电子表格straps.values.update API覆盖电子表格中的所有数据,但是我看不到如何添加实际写入行的条件。

理想情况下,该解决方案将避免下载数据,将其合并到本地,然后完全覆盖电子表格,因为数据可能会变得很大,而且该过程将需要很长时间,并且在更新时需要限制对电子表格的访问,以便不会丢失更改。

google-sheets google-sheets-api
1个回答
0
投票

对于我从您的问题中可以理解的信息,如果行中的某个时间戳(您已将所有行从电子表格中移到应用中,对吗?),您只需使用桌面应用更新电子表格中的某些行。 >

[如果我了解得很好,您可以使用Method: spreadsheets.values.batchUpdate端点在所需的某一行中发送所需的数据,而无需更新整个电子表格。

像这样构建请求正文:

{
  "includeValuesInResponse": false,
  "valueInputOption": "RAW",
  "data": [
    {
      "range": "A1:C1",
      "values": [
        [
          "A1",
          "B1",
          "C1"
        ]
      ]
    }
  ]
}

通知

range参数指定要在何处更新信息,它用A1表示法,values参数是带有内部数组的数组,表示外部数组 Columns >>和内部数组Rows

文档

有关更多信息,请检查以下文档:

© www.soinside.com 2019 - 2024. All rights reserved.