Удалить (удалить) столбец в листе Google более чем на 1000 * как лист.delete_row - PullRequest
2 голосов
/ 14 апреля 2020

Есть ли такой метод, как worksheet.delete_row в gspread google-sheet? Я попытался:

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

, но это только удалить все значения, а не столбец. Может ли кто-нибудь помочь мне?

1 Ответ

3 голосов
/ 15 апреля 2020

Ответ:

В 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 на диапазон столбцов, который вы хотите удалить sh. 1014 *

Редактировать: Если вы не знаете sheetId данного листа, вы можете получить его, используя следующее:

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

Обратите внимание, что это не нужно для исходный лист электронной таблицы, так как это будет всегда be 0.

Я надеюсь, что это полезно для вас!

Ссылки:


Обновление 2020-04-15:

Этот скрипт был объединен с gspread master сегодня запрос на получение # 759 как метод delete_column().

Метод будет доступен в следующем выпуске v3.5.0.

Метод для delete_columns() также был добавлен в качестве параллельного метода к существующему delete_rows() из запроса на получение # 761 .

...