基本格式

Google 試算表 API 可讓您更新試算表內的儲存格和範圍格式。本頁的範例說明如何使用 Sheets API 執行一些常見的格式設定作業。如需更多條件式格式設定範例,請參閱「條件式格式設定」技巧頁面。

更新試算表時,某些類型的要求可能會傳回回應。這些資料會以陣列的形式傳回,每個回應都會與對應要求的索引相同。部分要求沒有回應,因此回應為空白。這些範例的回應結構可在 spreadsheets.batchUpdate 下方找到。

這些範例以 HTTP 要求的形式呈現,以便不受語言限制。如要瞭解如何使用 Google API 用戶端程式庫,以不同語言實作批次更新,請參閱「更新試算表」。

在這些範例中,預留位置 SPREADSHEET_IDSHEET_ID 會指出您要提供這些 ID 的位置。你可以在試算表網址中找到試算表 ID。您可以使用 spreadsheets.get 方法取得工作表 ID。範圍使用 A1 標記法指定。範例範圍為 Sheet1!A1:D5。

在上述影片中,您將瞭解如何以各種方式設定試算表儲存格的格式,包括:建立凍結的資料列、將儲存格設為粗體、實作貨幣格式、執行儲存格驗證,以及限制儲存格值。

編輯儲存格框線

以下 spreadsheets.batchUpdate 程式碼範例說明如何使用 UpdateBordersRequest,為 A1:F10 範圍中的每個儲存格加上虛線藍色上邊框和下邊框。innerHorizontal 欄位會在範圍內部建立水平邊框。如果省略這個欄位,系統只會在整個範圍的頂端和底部新增邊框。

3 x 3 的表格,每個儲存格都有虛線藍色上邊框和下邊框。
圖 1. 在工作表中,為每個儲存格設定虛線藍色上邊框和下邊框。

要求通訊協定如下所示。

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 欄位中省略資料欄索引,整個資料列都會進行格式設定。第二個要求會調整工作表屬性,讓標題列保持凍結狀態。

試算表中 3 x 3 的表格,其中包含格式化的標題列。
圖 2. 設定工作表中的標題列格式。

要求通訊協定如下所示。

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 的資料欄,但會保留資料列。

工作表中 3 x 3 的表格,其中包含合併的儲存格。
圖 3. 合併試算單元中的儲存格。

要求通訊協定如下所示。

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 更新儲存格,以便使用自訂日期時間和數字格式。第一個要求會將自訂日期時間格式 hh:mm:ss am/pm, ddd mmm dd yyyy 套用至 A1 到 A10 範圍的儲存格。以這種格式表示的日期時間範例為:「02:05:07 PM, Sun Apr 03 2016」。

第二個要求會將自訂數字格式 #,##0.0000 套用至 B1:B10 中的儲存格,這表示數字應以逗號分隔,小數點後面應有 4 個數字,且除開頭的 0 之外,所有開頭 0 都應捨去。舉例來說,數字「3.14」會顯示為「3.1400」,而「12345.12345」則會顯示為「12,345.1235」。

工作表中 3 x 3 的表格,其中包含自訂的日期/時間和數字格式。
圖 4 更新試算表中的儲存格,以便使用自訂的日期/時間和數字格式。

要求通訊協定如下所示。

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"
      }
    }
  ]
}