来自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
答案 0 :(得分:0)
如果我的理解是正确的,那么该修改如何?用作请求正文的对象是docs.documents.get方法返回的对象。在此答案中,我想向您展示3个示例。
此示例脚本来自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列的新表。
requests = [
{
"insertTable":
{
"rows": 2,
"columns": 2,
"location":
{
"index": 1
}
}
}
]
result = service.documents().batchUpdate(documentId=DOCUMENT_ID, body={'requests': requests}).execute()
不幸的是,尽管我一直在寻找用于创建表并将值放在每个单元格中的方法的官方文档,但我找不到。所以我尝试了一下。在此示例脚本中,我向您展示了创建表并将值放在每个单元格中的方法。
此示例脚本的流程如下。
A1
,B1
,A2
和B2
的文本放入表格的单元格“ A1:B2”。
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
的范围。请注意这一点。如果我误解了您的问题,而这不是您想要的结果,我深表歉意。