我有一个用于编辑数据表的桌面应用程序。每行都通过时间戳跟踪其最新更改。另外,还有一个Google Spreadsheet包含该数据表,其他人直接在浏览器中使用该表来编辑数据。在电子表格上运行一个onEdit脚本,该脚本会更新每行上最后更改的时间戳。
桌面应用程序现在使用Google Spreadsheet API来下载工作表并将数据合并到本地数据中,方法是只使用带有新时间戳的行,并且可以正常工作。
我想添加让桌面应用自动将其数据写入Google Spreadsheet的选项,但不覆盖所有行,而是仅覆盖时间戳较旧的行。
我有一个可用的版本,可以使用电子表格straps.values.update API覆盖电子表格中的所有数据,但是我看不到如何添加实际写入行的条件。
理想情况下,该解决方案将避免下载数据,将其合并到本地,然后完全覆盖电子表格,因为数据可能会变得很大,而且该过程将需要很长时间,并且在更新时需要限制对电子表格的访问,以便不会丢失更改。
对于我从您的问题中可以理解的信息,如果行中的某个时间戳(您已将所有行从电子表格中移到应用中,对吗?),您只需使用桌面应用更新电子表格中的某些行。 >
[如果我了解得很好,您可以使用Method: spreadsheets.values.batchUpdate端点在所需的某一行中发送所需的数据,而无需更新整个电子表格。
像这样构建请求正文:
{ "includeValuesInResponse": false, "valueInputOption": "RAW", "data": [ { "range": "A1:C1", "values": [ [ "A1", "B1", "C1" ] ] } ] }
通知
range
参数指定要在何处更新信息,它用A1表示法,values
参数是带有内部数组的数组,表示外部数组 Columns >>和内部数组Rows。文档
有关更多信息,请检查以下文档: