首页 > 解决方案 > 通过 gspread Python 删除(删除)谷歌表中的列,如 sheet.delete_row

问题描述

gspread google-sheet 中是否有类似 worksheet.delete_row 的方法?我试过:

delete = sheet.range('A1:A1000')
        for cell in delete:
            cell.value = ""
            sheet.update_cells(delete)

但这只会删除所有值,而不是列。任何人都可以帮助我吗?

标签: pythongoogle-sheetsgspread

解决方案


回答:

没有gspread删除整个列的方法,例如Workbook.delete_row,但是您可以通过批量更新来执行此操作。

代码示例:

spreadsheetId = "your-spreadsheet-id"
sheetId = "id-of-sheet-to-delete-column-from"

sh = client.open_by_key(spreadsheetId)

request = {
    "requests": [
        {
            "deleteDimension": {
                "range": {
                    "sheetId": sheetId,
                    "dimension": "COLUMNS",
                    "startIndex": 0,
                    "endIndex": 1
                }
            }
        }
    ]
}
result = sh.batch_update(request)

此示例将删除 A 列,但请确保将startIndex和更改endIndex为您要删除的列范围。

编辑: 如果您不知道sheetId给定工作表的,您可以使用以下方法获取它:

sheetName = "theSheetName"
sheetId = sh.worksheet(sheetName)._properties["sheetId"]

请注意,电子表格的原始工作表不需要这样做,因为它始终0.

参考:


2020 年 4 月 15 日更新:

这个脚本今天从pull request #759作为 method与gspreadmaster合并。delete_column()

该方法将在下一个版本中提供v3.5.0

一个 for 的方法delete_columns()也作为并行方法添加到delete_rows()来自pull request #761的现有方法中。


推荐阅读