【问题标题】:How to clear all content of a google worksheet?如何清除谷歌工作表的所有内容?
【发布时间】:2019-09-21 11:47:00
【问题描述】:

我正在使用 python 和 gspread 更新一个谷歌电子表格。我正在使用“values_update”为源使用 CSV 文件:

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

我想在更新新数据之前清除现有工作表的所有内容。 我找不到一个简单的方法来做到这一点。 有没有很好的方法来实现这一点?

【问题讨论】:

    标签: python google-sheets-api gspread


    【解决方案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')))}
    )
    

    参考资料:

    如果我误解了您的问题并且这不是您想要的方向,我深表歉意。

    【讨论】:

    • 非常感谢。这就是我一直在寻找的
    • @Iddos 感谢您的回复。很高兴您的问题得到解决。
    【解决方案2】:

    接受的解决方案对我不起作用,但使用 clear 方法可以。所以像projectSheet.clear() 这样的东西然后继续执行批量更新。 这是clear方法https://gspread.readthedocs.io/en/latest/api.html#gspread.models.Worksheet.clear的链接

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-07-10
      • 1970-01-01
      • 2022-07-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多