我正在使用python和gspread更新Google电子表格。我正在使用“ values_update”作为来源的CSV文件:
projectSheet.values_update(
worksheetName, params={'valueInputOption': 'USER_ENTERED'},
body={'values': list(csv.reader(open(csvName, encoding='utf-8')))}
)
我想在更新新数据之前清除现有工作表的所有内容。 我找不到一种简单的方法。 有没有一种好的方法可以实现这一目标?
答案 0 :(得分:1)
如果我的理解正确,那么这个答案如何?
在此答案中,使用gspread的batch_update
方法清除工作表上所有单元格的内容,并将这些值放入已清除的工作表中。
# Clear the contents of all cells on the worksheet of "worksheetName".
sheetId = projectSheet.worksheet(worksheetName)._properties['sheetId']
body = {
"requests": [
{
"deleteRange": {
"range": {
"sheetId": sheetId
},
"shiftDimension": "ROWS"
}
}
]
}
projectSheet.batch_update(body)
projectSheet.values_update(
worksheetName,
params={'valueInputOption': 'USER_ENTERED'},
body={'values': list(csv.reader(open(csvName, encoding='utf-8')))}
)
如果我误解了您的问题,而这不是您想要的方向,我深表歉意。
答案 1 :(得分:1)
可接受的解决方案对我不起作用,但是使用clear
方法可以。因此,类似projectSheet.clear()
的东西然后继续执行批量更新。
这是clear
方法https://gspread.readthedocs.io/en/latest/api.html#gspread.models.Worksheet.clear