【问题标题】:Insert table in Google Docs API Python在 Google Docs API Python 中插入表格
【发布时间】:2019-05-21 21:17:07
【问题描述】:

来自Working with tables  |  Google Docs API  |  Google Developers

requests = [{'insertTable': {"table": {
"columns": 2,
"rows": 2,
"tableRows": [
    { "tableCells": [
            {
                "content": [ { "paragraph": { ...  }, } ],
            },
            {
                "content": [ { "paragraph": { ... }, } ],
            }
        ],
    },
    {
        "tableCells": [
            {
                "content": [ { "paragraph": { ... }, } ],
            },
            {
                "content": [ { "paragraph": { ... }, } ],
            }
        ],
    }
]}}}]
result = service.documents().batchUpdate(documentId=DOCUMENT_ID, body={'requests': requests}).execute()

我收到了TypeError: Object of type set is not JSON serializable

【问题讨论】:

    标签: python google-docs-api


    【解决方案1】:
    • 您想使用 Google Docs API 在 Google 文档中插入表格。

    如果我的理解是正确的,那么这个修改呢?用作请求主体的对象是 docs.documents.get 方法返回的对象。在这个答案中,我想向您展示 3 个示例。

    示例脚本 1:

    此示例脚本来自the official document

    以下示例将文本插入表格的第一个表格单元格并添加表格行。

    作为重要的一点,在您运行脚本之前,请创建新的 Google 文档并放置一个表格。然后,请使用脚本来创建文档。这样Hello的文本就被放到了表格的“A1”中,表格中增加了一行。

    脚本:

    requests = [{
          'insertText': {
            'location': {
              'index': 5
            },
            'text': 'Hello'
        }
      },
      {
        'insertTableRow': {
            'tableCellLocation': {
                'tableStartLocation': {
                        'index': 2
                },
                'rowIndex': 1,
                'columnIndex': 1
            },
            'insertBelow': 'true'
        }
      }
    ]
    
    result = service.documents().batchUpdate(documentId=DOCUMENT_ID, body={'requests': requests}).execute()
    

    示例脚本 2:

    在此示例脚本中,创建了一个 2 行 2 列的新表。

    脚本:

    requests = [
        {
            "insertTable":
            {
                "rows": 2,
                "columns": 2,
                "location":
                {
                    "index": 1
                }
            }
        }
    ]
    
    result = service.documents().batchUpdate(documentId=DOCUMENT_ID, body={'requests': requests}).execute()
    

    示例脚本 3:

    不幸的是,虽然我一直在官方文档中寻找创建表格并将值放入每个单元格中的方法,但我找不到。所以我对此进行了实验。在这个示例脚本中,我向您展示了创建表格并将值放入每个单元格的方法。

    此示例脚本的流程如下。

    1. 创建一个 2 行 2 列的表。
    2. A1B1A2B2 的文本放入表格的单元格“A1:B2”中。
      • 从我的实验中,得到了以下结果。
        • 对于行,要求每5个索引设置一次索引。
        • 对于列,需要设置每2个索引的索引。
        • 作为重要的一点,当将值放入单元格时,请按“B2”、“A2”、“B1”和“A1”的顺序排列。因为第一次放“A1”时,其他单元格的索引会改变。

    脚本:

    requests = [
        {
            "insertTable":
            {
                "rows": 2,
                "columns": 2,
                "location":
                {
                    "index": 1
                }
            }
        },
        {
            "insertText":
            {
                "text": "B2",
                "location":
                {
                    "index": 12
                }
            }
        },
        {
            "insertText":
            {
                "text": "A2",
                "location":
                {
                    "index": 10
                }
            }
        },
        {
            "insertText":
            {
                "text": "B1",
                "location":
                {
                    "index": 7
                }
            }
        },
        {
            "insertText":
            {
                "text": "A1",
                "location":
                {
                    "index": 5
                }
            }
        }
    ]
    
    result = service.documents().batchUpdate(documentId=DOCUMENT_ID, body={'requests': requests}).execute()
    

    注意:

    • 这些示例脚本使用https://www.googleapis.com/auth/documents 的范围。请注意这一点。
    • 在这些示例脚本中,假设您已经使用过 Google Docs API。如果运行脚本时出现错误,请查看the Quickstart
    • Google Docs API 现在正在增长。所以我认为将来可能会针对这种情况添加更简单的方法。

    参考资料:

    如果我误解了您的问题并且这不是您想要的结果,我深表歉意。

    【讨论】:

    • @paragbaxi 感谢您的回复。我可以通过思考您的问题来获得示例脚本 3。我认为这是一个重要的信息。也谢谢你。
    • @paragbaxi 我创建了一个 python 库,用于在 Google Document 上创建表格。这对您的情况有用吗? github.com/tanaikech/gdoctableapppy
    猜你喜欢
    • 2022-10-20
    • 2022-06-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-11-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多