在 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 列,但请确保将 startIndex
和 endIndex
更改为您要删除的列范围。
编辑:
如果您不知道给定 sheet 的 sheetId
,您可以使用以下方法获取它:
sheetName = "theSheetName"
sheetId = sh.worksheet(sheetName)._properties["sheetId"]
请注意,Spreadsheet 的原始 sheet 不需要这样做,因为这将 always 为 0
.
参考文献:
- Method:
spreadsheets.batchUpdate
| Sheets API | Google Developers
- API References - gspread 3.4.0 documentation -
batch_update(body)
2020-04-15 更新:
此脚本已于今天从 pull request #759 与 gspread
master 合并为方法 delete_column()
。
The method will be available in the next release v3.5.0
.
delete_columns()
的方法也作为并行方法添加到 pull request #761 中现有的 delete_rows()
。
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 列,但请确保将 startIndex
和 endIndex
更改为您要删除的列范围。
编辑:
如果您不知道给定 sheet 的 sheetId
,您可以使用以下方法获取它:
sheetName = "theSheetName"
sheetId = sh.worksheet(sheetName)._properties["sheetId"]
请注意,Spreadsheet 的原始 sheet 不需要这样做,因为这将 always 为 0
.
参考文献:
- Method:
spreadsheets.batchUpdate
| Sheets API | Google Developers - API References - gspread 3.4.0 documentation -
batch_update(body)
2020-04-15 更新:
此脚本已于今天从 pull request #759 与 gspread
master 合并为方法 delete_column()
。
The method will be available in the next release
v3.5.0
.
delete_columns()
的方法也作为并行方法添加到 pull request #761 中现有的 delete_rows()
。