如何解决如何使用Python在Google Spreadsheet中为特定工作表拆分所有合并的单元格? 参考:
我正在使用Google sheet API,并且定义了以下功能:
def service():
secret_id_gsuite_token = 'my_token' # AWS Secret with token
gsheet = GSheets(secret_id_gsuite_token)
return gsheet
要使用熊猫数据框中的信息更新工作表,请执行以下操作:
def df_to_googlesheet(gsheet,df,gsheetId,sheet_name):
output = gsheet.spreadsheets.values().update(
spreadsheetId = gsheetId,valueInputOption = 'RAW',range = sheet_name + '!A1',body = dict(
majorDimension = 'ROWS',values = df.T.reset_index().T.values.tolist())
).execute()
请求合并单元格以形成“块”:
def merge_cells_request(sheeId,start_row,end_row,start_col,end_col):
request = [{"mergeCells": { "range": { "sheetId": sheeId,"startRowIndex": start_row,"endRowIndex": end_row,"startColumnIndex": start_col,"endColumnIndex": end_col},"mergeType": "MERGE_ALL"}}]
return request
我也有类似的功能来请求对彩色单元格背景的请求。我将所有请求放入请求列表中,并在运行时应用它们:
gsheet.batch_update(gsheetId,requests)
此batch_update函数使用Google表格api的 batchUpdate()方法。
最后,这是清除工作表的功能:
def clear_sheet(gsheet,spreadsheetId,sheeId):
clear_request = [{"updateCells": {"range": {"sheetId": sheeId},"fields": "*"}}]
gsheet.batch_update(spreadsheetId,clear_request)
问题是最后一个函数不能清除合并的单元格,我想取消合并所有合并的单元格,以便再次完全清理工作表,但是我在网上找到的所有选项似乎都不适合我的代码...
解决方法
我相信您的目标和情况如下。
- 您要在
I want to unmerge all merged cells in order to have the sheet totally clean again
中使用Sheets API取消合并工作表中的单元格。 - 您想使用适用于python的googleapis实现此目标。
- 您已经能够使用Sheets API获取和放置Google Spreadsheet的值。
在这种情况下,我想建议在Sheets API中使用batchUpdate方法的UnmergeCellsRequest。
请求正文如下。
{
"requests": [
{
"unmergeCells": {
"range": {
"sheetId": sheeId
}
}
}
]
}
-
尽管我不确定您的整个脚本,但您不确定以下脚本
def clear_sheet(gsheet,spreadsheetId,sheeId): clear_request = [{"updateCells": {"range": {"sheetId": sheeId},"fields": "*"}}] gsheet.batch_update(spreadsheetId,clear_request)
-
在这种情况下,
gsheet.batch_update()
的请求可能如下。[{"unmergeCells": {"range": {"sheetId": sheeId}}}]
-
参考:
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。