如何清除Google工作表的所有内容?

时间:2019-09-21 11:47:00

标签: python google-sheets-api gspread

我正在使用python和gspread更新Google电子表格。我正在使用“ values_update”作为来源的CSV文件:

    projectSheet.values_update(
    worksheetName, params={'valueInputOption': 'USER_ENTERED'},
    body={'values': list(csv.reader(open(csvName, encoding='utf-8')))}
) 

我想在更新新数据之前清除现有工作表的所有内容。 我找不到一种简单的方法。 有没有一种好的方法可以实现这一目标?

2 个答案:

答案 0 :(得分:1)

  • 您要在清除工作表上所有单元格的内容之后输入值。
  • 您想使用Python的gspread实现此目的。
  • 您已经能够使用Sheets API放置和获取电子表格的值。

如果我的理解正确,那么这个答案如何?

在此答案中,使用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

的链接