在 gspread Python 上删除 google sheet 中的列,如 sheet.delete_row

Delete (remove) column in google sheet over gspread Python like sheet.delete_row

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

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

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

答案:

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 列,但请确保将 startIndexendIndex 更改为您要删除的列范围。

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

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

请注意,Spreadsheet 的原始 sheet 不需要这样做,因为这将 always0.

参考文献:


2020-04-15 更新:

此脚本已于今天从 pull request #759gspread master 合并为方法 delete_column()

The method will be available in the next release v3.5.0.

delete_columns() 的方法也作为并行方法添加到 pull request #761 中现有的 delete_rows()