如何使用 Google 客户端库调整工作表的大小



我正在尝试使用 Google 提供的 API v4 库调整电子表格的大小(我有理由不使用 Gspread(,但我该怎么做呢?

我已经尝试了几种方法,我目前的脚本如下;我只是在寻找我需要发送的请求正文。我还必须使用批量更新或更新吗?

提前谢谢你。

body = {
"updateDimensionProperties": {
"range": {
"sheetId": utils.spreadsheet_handler.spreadsheet_id,
"dimension": "COLUMNS",
"startIndex": 0,
"endIndex": 1
}
}
}
utils.spreadsheet_handler.sheet.values().batchUpdate(
spreadsheetId=utils.spreadsheet_handler.spreadsheet_id,
body=body).execute()  # Resizes the reservation spreadsheet

utils.spreadsheet_handler 是一个处理身份验证的类

  • 您希望增加和/或减少 Google 电子表格中工作表的行数和列数。
  • 你想使用带有Python的googleapis来实现这一点。
  • 您已经能够使用表格API获取和输入Google电子表格的值。

为此,这个答案怎么样?在此答案中,使用了工作表 API 中批处理更新方法的UpdateSheetPropertiesRequestAppendDimensionRequestDeleteDimensionGroupRequest

模式 1:

在此模式中,工作表的行数和列数变为 5 和 5。

示例脚本:

service = build('sheets', 'v4', credentials=creds)
spreadsheetId = "###"  # Please set the Spreadsheet ID.
sheetId = "###"  # Please set the sheet ID.
body = {
"requests": [
{
"updateSheetProperties": {
"properties": {
"gridProperties": {
"rowCount": 5,
"columnCount": 5
},
"sheetId": sheetId
},
"fields": "gridProperties"
}
}
]
}
service.spreadsheets().batchUpdate(spreadsheetId=spreadsheetId, body=body).execute()

模式 2:

在此模式中,追加了 10 行和 10 列。

示例脚本:

service = build('sheets', 'v4', credentials=creds)
spreadsheetId = "###"  # Please set the Spreadsheet ID.
sheetId = "###"  # Please set the sheet ID.
body = {
"requests": [
{
"appendDimension": {
"sheetId": sheetId,
"dimension": "ROWS",
"length": 10
}
},
{
"appendDimension": {
"sheetId": sheetId,
"dimension": "COLUMNS",
"length": 10
}
}
]
}
service.spreadsheets().batchUpdate(spreadsheetId=spreadsheetId, body=body).execute()

模式 3:

在此模式中,减少了 10 行和 10 列。在示例脚本中,删除第 1 行到第 10 行以及列 A 到 J

示例脚本:

service = build('sheets', 'v4', credentials=creds)
spreadsheetId = "###"  # Please set the Spreadsheet ID.
sheetId = "###"  # Please set the sheet ID.
body = {
"requests": [
{
"deleteDimension": {
"range": {
"sheetId": sheetId,
"dimension": "ROWS",
"startIndex": 0,
"endIndex": 10
}
}
},
{
"deleteDimension": {
"range": {
"sheetId": sheetId,
"dimension": "COLUMNS",
"startIndex": 0,
"endIndex": 10
}
}
}
]
}
service.spreadsheets().batchUpdate(spreadsheetId=spreadsheetId, body=body).execute()

注意:

  • 请根据您的实际情况选择示例脚本。

引用:

  • 方法:电子表格.批处理更新
  • 更新工作表属性请求
  • 追加维度请求
  • 删除维度组请求

据我所知,您需要的信息在以下链接中 - 通过阅读 GridProperties 页面,您似乎需要使用 rowCount 和 columnCount 来调整电子表格的大小。

  • 更新电子表格属性请求
  • 网格属性

关于是否需要 batchUpdate,UpdateSpreadsheetProperties 请求允许指定多个属性,因此应该可以改用该属性。 仅当您打算更新需要不同请求类型的多个属性时,才需要 batchUpdate。

最新更新