2017-04-19 178 views
2

我使用Google Sheets API的Python客户端来构建电子表格。我能够创建一个新工作表并更新其中的值,但我无法合并单元格用于我想要的标题行。如何合并单元格与Google表格API?

top_header_format = [ 
    {'mergeCells': { 
     'mergeType': 'MERGE_COLUMNS', 
     'range': { 
      'endColumnIndex': 3, 
      'endRowIndex': 1, 
      'sheetId': '112501875', 
      'startColumnIndex': 0, 
      'startRowIndex': 0 
     } 
    }}, 
    {'mergeCells': { 
     'mergeType': 'MERGE_COLUMNS', 
     'range': { 
      'endColumnIndex': 5, 
      'endRowIndex': 1, 
      'sheetId': '112501875', 
      'startColumnIndex': 3, 
      'startRowIndex': 0 
     } 
    }} 
] 

service.spreadsheets().batchUpdate(
    spreadsheetId=spreadsheet_id, 
    body={'requests': top_header_format} 
).execute() 

这是我正在运行的代码。没有错误。回复的回复为空,并且电子表格没有合并的单元格。该文档是here

回答

3

开始索引是包含性的,并且结束索引是排他性的,因此通过要求合并行[0,1),您说“我想将行0合并到行0”中,这是无操作。您可能希望[0,2),例如:

top_header_format = [ {'mergeCells': { 'mergeType': 'MERGE_COLUMNS', 'range': { 'endColumnIndex': 4, 'endRowIndex': 2, 'sheetId': '112501875', 'startColumnIndex': 0, 'startRowIndex': 0 } }}, {'mergeCells': { 'mergeType': 'MERGE_COLUMNS', 'range': { 'endColumnIndex': 6, 'endRowIndex': 2, 'sheetId': '112501875', 'startColumnIndex': 3, 'startRowIndex': 0 } }} ]

+0

(虽然,现在我回头看,你说MERGE_COLUMNS ......所以,指定单个行不应该是一个问题,因为你已经有多列,所以我的回答可能没有意义,让我检查一下,然后回来。) –

+1

好的,上面的答案是正确的。枚举名称总是让我困惑。 MERGE_COLUMNS记录为“为范围中的每个列创建合并” - 这意味着行合并在一起。由于您只将MERGE_COLUMNS指定为一行,因此不会合并行。 您可以指定MERGE_ALL或MERGE_ROWS以查看与先前索引合并的内容。 –

+0

谢谢。问题是我也被enums弄糊涂了。我已经按预期工作了。 –