我如何删除或更新谷歌电子表格使用Python导入csv?



我正在制作我的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

最新更新