使用 Google 文档 API 查找 Table 起始位置索引

Finding Table Start Location Index using Google Docs API

我想通过 Docs API 进行插入Table行请求,它需要 TableStartLocation。 我用了

var tableName = table[0];
foreach (var element in document.Body.Content)
if (element.Table != null)
{
   var checkTable = element.Table.TableRows[0].TableCells[0].Content[0].Paragraph.Elements[0]
                            .TextRun.Content.TrimEnd('\n'); //Get Text Value in first cell of the table
                        
   if (tableName.Equals(checkTable)) // Check if the table is the table that I want to add rows
      {
          Console.WriteLine("Add Table Row");
          TableUpdateRequest(ref requests, table, element.StartIndex); // Using element(StructuralElement) to get StartIndex
          break;
      }
}

要查找文档中的所有 table 并尝试使用 element.StartIndex 作为 Table 起始位置,但我得到:Google.GoogleApiException : Google.Apis.Requests.RequestError Invalid requests[5].insertTableRow: Invalid table start location. Must specify the start index of the table. [400]

Table 起始位置的 suitable 索引是什么?

需要 tableStartLocation 来识别正确的 table

一种检索它的方法是例如documents.get。要缩小结果范围,您可以指定 fields,例如body/content(startIndex,table).

这将return你

类型的资源
{
  "body": {
    "content": [
      {},
      {
        "startIndex": 1
      },
      {
        "startIndex": 2,
        "table": {
          "rows": 4,
          "columns": 3,
          "tableRows": [
            {
             ...

换句话说:您现在知道您的 tableStartLocation2 - 与 table 的 startIndex 相同。

样本

  var resource = { "requests": [
    {
      "insertTableRow": {
        "tableCellLocation": {
          "tableStartLocation": {
            "index": 2
          }
        },
        "insertBelow": false
      }
    }
  ]
                 }
  Docs.Documents.batchUpdate(resource, documentId);

现在,根据您的文档,您可能有多个 table,并且可能希望在决定哪个是正确的起始索引之前比较名称等。