Google 工作表 API:追加单元格并自动添加开发人员元数据?

Google Sheets API: Append cells and add developer metadata atomically?

我想将一行单元格附加到 google sheet 并将一些开发人员元数据附加到该行。

在 Google Sheets v4 API 中,我知道您可以使用 batchUpdate to append a row with the appendCells request, and you can add developer metadata using the createDeveloperMetadata 请求。

我的问题是我想设置一些开发人员元数据以原子方式特别是新附加的单元格。确实没有办法专门确保 createDeveloperMetadata 中新添加行的范围,如果我使用两个不同的请求,其他人可能会在这些请求之间插入一行,这可能会移动所有行,从而导致附加单元格的范围指向不正确的行。

有没有办法自动将开发人员元数据附加到新添加的单元格?

答案:

目前没有办法确保 sheet 结构在请求之间没有改变。

更多信息:

我认为最好的选择是在同一批次中发出两个顺序请求。尽管这并非万无一失,但在非常不幸的情况下。即使直接使用 UpdateCellsRequest 插入行也不是万无一失的,因为仅仅知道您插入了哪一行数据并不能排除其他人可能 insert/delete 在两个请求之间的前一行的可能性.

功能请求:

不过,您可以让 Google 知道这是一项对表格 API 很重要的功能,并且您希望他们实施该功能。 Google 的 Issue Tracker 是开发人员报告问题和提出开发服务功能请求的地方。

为 Google 工作表 API 提交功能请求的页面是 here

参考文献:

我想出的解决方案基本上是:

  • 获取 sheet

    的维度
  • 使用 insertDimensionupdateCellscreateDeveloperMetadata 执行批量更新,所有操作都针对相同的 sheet 维度索引执行sheet

这基本上确保了批量更新中所有3个操作的维度索引将指向同一行,如果索引指向越界,则所有3个操作都将失败