行和列操作

利用 Google Tables API,您可以在工作表中添加、移除和处理行和列。本页面上的示例说明了如何使用 Tables API 实现一些常用的行和列操作。

出于中性考虑,这些示例以 HTTP 请求的形式呈现。如需了解如何使用 Google API 客户端库以不同语言实现批量更新,请参阅更新电子表格

在这些示例中,占位符 SPREADSHEET_IDSHEET_ID 表示您要提供这些 ID 的位置。您可以在电子表格网址中找到电子表格 ID。您可以使用 spreadsheets.get 方法获取工作表 ID。范围使用 A1 表示法指定。例如,“Sheet1!A1:D5”是范围。

调整列宽或行高

以下 spreadsheets.batchUpdate 代码示例展示了如何使用 UpdateDimensionPropertiesRequest 将 A 列的宽度属性更新为 160 像素。第二个请求会将前三行的行高属性更新为 40 像素。dimension 字段确定操作是应用于工作表中的列还是行。

请求协议如下所示。

POST https://sheets.googleapis.com/v4/spreadsheets/SPREADSHEET_ID:batchUpdate
{
  "requests": [
    {
      "updateDimensionProperties": {
        "range": {
          "sheetId": SHEET_ID,
          "dimension": "COLUMNS",
          "startIndex": 0,
          "endIndex": 1
        },
        "properties": {
          "pixelSize": 160
        },
        "fields": "pixelSize"
      }
    },
    {
      "updateDimensionProperties": {
        "range": {
          "sheetId": SHEET_ID,
          "dimension": "ROWS",
          "startIndex": 0,
          "endIndex": 3
        },
        "properties": {
          "pixelSize": 40
        },
        "fields": "pixelSize"
      }
    }
  ]
}

附加空行或空列

以下 spreadsheets.batchUpdate 代码示例展示了如何使用 AppendDimensionRequest 附加行和列。第一个请求会在工作表末尾附加三个空行,而第二个请求则会附加一个空列。dimension 字段确定操作是应用于工作表中的列还是行。

请求协议如下所示。

POST https://sheets.googleapis.com/v4/spreadsheets/SPREADSHEET_ID:batchUpdate
{
  "requests": [
    {
      "appendDimension": {
        "sheetId": SHEET_ID,
        "dimension": "ROWS",
        "length": 3
      }
    },
    {
      "appendDimension": {
        "sheetId": SHEET_ID,
        "dimension": "COLUMNS",
        "length": 1
      }
    }
  ]
}

自动调整列的大小

以下 spreadsheets.batchUpdate 代码示例展示了如何使用 AutoResizeDimensionsRequest 根据列内容的大小调整 A:C 列的大小。dimension 字段表示操作适用于工作表中的各列。

请求协议如下所示。

POST https://sheets.googleapis.com/v4/spreadsheets/SPREADSHEET_ID:batchUpdate
{
  "requests": [
    {
      "autoResizeDimensions": {
        "dimensions": {
          "sheetId": SHEET_ID,
          "dimension": "COLUMNS",
          "startIndex": 0,
          "endIndex": 3
        }
      }
    }
  ]
}

自动调整行大小

以下 spreadsheets.batchUpdate 代码示例展示了如何使用 AutoResizeDimensionsRequest 清除前三行的行高。然后,行高会根据每行中单元格的内容动态增长。dimension 字段表示相应操作适用于工作表的行。

请求协议如下所示。

POST https://sheets.googleapis.com/v4/spreadsheets/SPREADSHEET_ID:batchUpdate
{
  "requests": [
    {
      "autoResizeDimensions": {
        "dimensions": {
          "sheetId": SHEET_ID,
          "dimension": "ROWS",
          "startIndex": 0,
          "endIndex": 3
        }
      }
    }
  ]
}

删除行或列

以下 spreadsheets.batchUpdate 代码示例展示了如何使用 DeleteDimensionRequest 删除工作表中的前三行。第二个请求会删除 B:D 列。dimension 字段确定操作是应用于工作表中的列还是行。

请求协议如下所示。

POST https://sheets.googleapis.com/v4/spreadsheets/SPREADSHEET_ID:batchUpdate
{
  "requests": [
    {
      "deleteDimension": {
        "range": {
          "sheetId": SHEET_ID,
          "dimension": "ROWS",
          "startIndex": 0,
          "endIndex": 3
        }
      }
    },
    {
      "deleteDimension": {
        "range": {
          "sheetId": SHEET_ID,
          "dimension": "COLUMNS",
          "startIndex": 1,
          "endIndex": 4
        }
      }
    },
  ],
}

插入空行或列

以下 spreadsheets.batchUpdate 代码示例展示了如何使用 InsertDimensionRequest 在特定索引处插入列或行(例如,在工作表顶部添加空行)。第一个请求在 C 列处插入两个空列。第二个请求将从第 1 行开始插入三个空行。

dimension 字段确定操作是应用于工作表中的列还是行。

如果为 true,则 inheritFromBefore 字段会指示 Tables API 为新列或新行提供与前一行或前一列相同的属性;如果为 false,则从新列或新行之后的维度继承属性。如果在第 1 行插入行或在 A 列插入列,则 inheritFromBefore 不能为 true。

请求协议如下所示。

POST https://sheets.googleapis.com/v4/spreadsheets/SPREADSHEET_ID:batchUpdate
{
  "requests": [
    {
      "insertDimension": {
        "range": {
          "sheetId": SHEET_ID,
          "dimension": "COLUMNS",
          "startIndex": 2,
          "endIndex": 4
        },
        "inheritFromBefore": true
      }
    },
    {
      "insertDimension": {
        "range": {
          "sheetId": SHEET_ID,
          "dimension": "ROWS",
          "startIndex": 0,
          "endIndex": 3
        },
        "inheritFromBefore": false
      }
    },
  ],
}

移动行或列

以下 spreadsheets.batchUpdate 代码示例展示了如何使用 MoveDimensionRequest 将 A 列移动到 D 列的位置。第二个请求会将第 5-10 行移至第 20 行的位置。

dimension 字段确定操作是应用于工作表中的列还是行。destinationIndex 字段使用从零开始的起始索引确定将源数据移至何处。

请求协议如下所示。

POST https://sheets.googleapis.com/v4/spreadsheets/SPREADSHEET_ID:batchUpdate
{
  "requests": [
    {
      "moveDimension": {
        "source": {
          "sheetId": SHEET_ID,
          "dimension": "COLUMNS",
          "startIndex": 0,
          "endIndex": 1
        },
        "destinationIndex": 3
      }
    },
    {
      "moveDimension": {
        "source": {
          "sheetId": SHEET_ID,
          "dimension": "ROWS",
          "startIndex": 4,
          "endIndex": 10
        },
        "destinationIndex": 19
      }
    },
  ],
}