如何通过google-docs-api请求将内容添加到表格单元格?

时间:2019-06-24 11:24:25

标签: google-docs-api

我想在Google doc中的表格单元格中添加内容,但是文档中描述的方法不起作用。

我的请求出了什么问题?当我为index的{​​{1}}参数提供1时,它只是在表之前粘贴文本。当我提供2作为insertText参数的值时,我得到一个错误:“无效的请求[1] .insertText:插入索引必须在现有段落的范围内。您仍然可以通过插入换行符来创建新段落。 ”

index

我希望文本必须插入到表格的唯一单元格中。

1 个答案:

答案 0 :(得分:0)

  • 您要将表格(1 x 1)附加到最后一个正文。
  • 您要在第一个单元格中插入文本。

从您的请求正文中,我可以像上面那样理解。如果我的理解是正确的,那么流程如何?我认为可能有几种解决方案。因此,请仅考虑其中之一。

在将新表附加到最后一个主体的情况下("segmentId": ""意味着该表被附加到了最后一个主体。)首先,需要知道该表的起始索引。那么以下流程如何?

流程1:

在此流程中,它假定末尾的索引未知。

  1. 使用以下请求正文附加表。

    {
      "requests": [
        {
          "insertTable": {
            "endOfSegmentLocation": {
              "segmentId": ""
            },
            "columns": 1,
            "rows": 1
          }
        }
      ]
    }
    
  2. 使用以下端点检索表的起始索引。那时,您还可以检索单元格的开始索引。

    GET https://docs.googleapis.com/v1/documents/{fileId}?fields=body(content(startIndex%2Ctable))
    
  3. 将文本插入到单元格中。在这种情况下,假定附加表的检索起始索引为10。第一个单元格的起始索引是14(我认为第一个单元格的起始索引可以由start index of table + 4检索。)。在这种情况下,用于将文本插入单元格的请求正文如下。

    {
      "requests": [
        {
          "insertText":
          {
            "location":
            {
              "index": 14
            },
            "text": "Cell content"
          }
        }
      ]
    }
    

流程2:

在此流程中,假设最后一个身体的索引已知。例如,当表被追加到新文档时,您可以使用以下请求正文使用文本创建表。在这种情况下,表的起始索引和单元格分别为15

    {
      "requests": [
        {
          "insertTable":
          {
            "endOfSegmentLocation":
            {
              "segmentId": ""
            },
            "columns": 1,
            "rows": 1
          }
        },
        {
          "insertText":
          {
            "location":
            {
              "index": 5
            },
            "text": "Cell content"
          }
        }
      ]
    }

参考文献:

如果我误解了您的问题,而这不是您想要的方向,我深表歉意。