我正在制作我的Python脚本,现在我的脚本可以将csv导入电子表格,但我必须修改它以替换或删除已经导入并更新为最新csv的旧电子表格,因为目前我的脚本只在csv文件上上传和正常粘贴数据。我需要什么来修改我的脚本?
我的脚本
def export_csv(o_csv, sheet_id):
with open(o_csv, 'r') as csv_file:
csvContents = csv_file.read()
body = {
'requests': [{
'pasteData': {
"coordinate": {
"sheetId": sheet_id,
"rowIndex": "0",
"columnIndex": "0",
},
"data": csvContents,
"type": 'PASTE_NORMAL',
"delimiter": ',',
}
}]
}
我相信你的目标是这样的。
- 清空
sheet_id
表后,需要将CSV数据放到sheet_id
表中 - 你想在python中使用gspread来实现这一点。
在这种情况下,下面的修改如何?
:
body = {
'requests': [{
'pasteData': {
"coordinate": {
"sheetId": sheet_id,
"rowIndex": "0",
"columnIndex": "0",
},
"data": csvContents,
"type": 'PASTE_NORMAL',
"delimiter": ',',
}
}]
}
:
body = {
"requests": [
{"updateCells": {"range": {"sheetId": sheet_id}, "fields": "*"}}, # Added
{
"pasteData": {
"coordinate": {
"sheetId": sheet_id,
"rowIndex": "0",
"columnIndex": "0",
},
"data": csvContents,
"type": "PASTE_NORMAL",
"delimiter": ",",
}
},
]
}
- 在这种情况下,通过在请求正文中添加一个请求,清除
sheet_id
表。并且,在清除工作表之后,将放入CSV数据。这样,这个请求可以通过一个API调用来完成。 - 本例中,
fields
使用*
。如果您想控制显示内容,请修改此。
引用:
- 方法:spreadsheets.batchUpdate
- UpdateCellsRequest