借助 Google 表格 API,您可以更新电子表格中单元格和范围的格式。本页中的示例展示了如何使用 Google 表格 API 执行一些常见的格式设置操作。您可以在条件格式食谱页面中找到更多条件格式示例。
更新电子表格时,某些类型的请求可能会返回响应。这些响应会以数组的形式返回,每个响应都占据与相应请求相同的索引。某些请求没有响应,对于这些请求,响应为空。如需查看这些示例的响应结构,请参阅 spreadsheets.batchUpdate
。
这些示例以 HTTP 请求的形式呈现,以便不受语言限制。如需了解如何使用 Google API 客户端库以不同语言实现批量更新,请参阅更新电子表格。
在这些示例中,占位符 SPREADSHEET_ID 和 SHEET_ID 表示您应在何处提供这些 ID。您可以在电子表格网址中找到电子表格 ID。您可以使用 spreadsheets.get
方法获取工作表 ID。范围使用 A1 表示法指定。示例范围为 Sheet1!A1:D5。
在上述视频中,您将学习如何通过多种方式设置电子表格单元格的格式,包括:创建冻结行、为单元格设置粗体、实现货币格式、执行单元格验证以及限制单元格值。
修改单元格边框
以下 spreadsheets.batchUpdate
代码示例展示了如何使用 UpdateBordersRequest
为 A1:F10 范围中的每个单元格添加蓝色虚线上边框和下边框。innerHorizontal
字段会在范围内部创建水平边框。如果省略该字段,则系统只会在整个范围的顶部和底部添加边框。
请求协议如下所示。
POST https://sheets.googleapis.com/v4/spreadsheets/SPREADSHEET_ID:batchUpdate
{ "requests": [ { "updateBorders": { "range": { "sheetId": SHEET_ID, "startRowIndex": 0, "endRowIndex": 10, "startColumnIndex": 0, "endColumnIndex": 6 }, "top": { "style": "DASHED", "width": 1, "color": { "blue": 1.0 }, }, "bottom": { "style": "DASHED", "width": 1, "color": { "blue": 1.0 }, }, "innerHorizontal": { "style": "DASHED", "width": 1, "color": { "blue": 1.0 }, }, } } ] }
设置标题行的格式
以下 spreadsheets.batchUpdate
代码示例展示了如何使用 RepeatCellRequest
设置工作表中的标题行格式。第一个请求会更新文本颜色、背景颜色、文本字体大小和文本对齐方式,并将文本设为粗体。在 range
字段中省略列编号会导致对整个行进行格式设置。第二个请求会调整工作表属性,以冻结标题行。
请求协议如下所示。
POST https://sheets.googleapis.com/v4/spreadsheets/SPREADSHEET_ID:batchUpdate
{ "requests": [ { "repeatCell": { "range": { "sheetId": SHEET_ID, "startRowIndex": 0, "endRowIndex": 1 }, "cell": { "userEnteredFormat": { "backgroundColor": { "red": 0.0, "green": 0.0, "blue": 0.0 }, "horizontalAlignment" : "CENTER", "textFormat": { "foregroundColor": { "red": 1.0, "green": 1.0, "blue": 1.0 }, "fontSize": 12, "bold": true } } }, "fields": "userEnteredFormat(backgroundColor,textFormat,horizontalAlignment)" } }, { "updateSheetProperties": { "properties": { "sheetId": SHEET_ID, "gridProperties": { "frozenRowCount": 1 } }, "fields": "gridProperties.frozenRowCount" } } ] }
合并单元格
以下 spreadsheets.batchUpdate
代码示例展示了如何使用 MergeCellsRequest
合并单元格。第一个请求会将 A1:B2 范围合并到单个单元格中。第二个请求会合并 A3:B6 中的列,同时让行保持分隔状态。
请求协议如下所示。
POST https://sheets.googleapis.com/v4/spreadsheets/SPREADSHEET_ID:batchUpdate
{ "requests": [ { "mergeCells": { "range": { "sheetId": SHEET_ID, "startRowIndex": 0, "endRowIndex": 2, "startColumnIndex": 0, "endColumnIndex": 2 }, "mergeType": "MERGE_ALL" } }, { "mergeCells": { "range": { "sheetId": SHEET_ID, "startRowIndex": 2, "endRowIndex": 6, "startColumnIndex": 0, "endColumnIndex": 2 }, "mergeType": "MERGE_COLUMNS" } }, ] }
为范围设置自定义日期时间格式或小数格式
以下 spreadsheets.batchUpdate
代码示例展示了如何使用 RepeatCellRequest
更新单元格以使用自定义日期时间和数字格式。第一个请求会为 A1:A10 范围内的单元格设置自定义日期时间格式 hh:mm:ss am/pm,
ddd mmm dd yyyy
。采用此格式的日期时间示例如下:“2016 年 4 月 3 日(星期日)晚上 2:05:07”。
第二个请求会为 B1:B10 中的单元格设置自定义数字格式 #,##0.0000
,该格式表示数字应使用英文逗号分隔,小数点后应有 4 位数字,并且应舍弃除一个以外的所有前导零。例如,数字“3.14”会呈现为“3.1400”,而“12345.12345”会呈现为“12,345.1235”。
请求协议如下所示。
POST https://sheets.googleapis.com/v4/spreadsheets/SPREADSHEET_ID:batchUpdate
{ "requests": [ { "repeatCell": { "range": { "sheetId": SHEET_ID, "startRowIndex": 0, "endRowIndex": 10, "startColumnIndex": 0, "endColumnIndex": 1 }, "cell": { "userEnteredFormat": { "numberFormat": { "type": "DATE", "pattern": "hh:mm:ss am/pm, ddd mmm dd yyyy" } } }, "fields": "userEnteredFormat.numberFormat" } }, { "repeatCell": { "range": { "sheetId": SHEET_ID, "startRowIndex": 0, "endRowIndex": 10, "startColumnIndex": 1, "endColumnIndex": 2 }, "cell": { "userEnteredFormat": { "numberFormat": { "type": "NUMBER", "pattern": "#,##0.0000" } } }, "fields": "userEnteredFormat.numberFormat" } } ] }