조건부 형식 지정

Google Sheets API를 사용하여 조건부 서식 규칙을 만들고 업데이트할 수 있습니다. 할 수 있습니다. 특정 서식 유형만 (굵게, 기울임꼴, 취소선, 조건부 색상, 배경 색상 등은 조건부 옵션을 통해 서식을 지정합니다. 이 페이지의 예시는 일반적인 Sheets API를 사용한 조건부 서식 작업

이 예는 언어 중립을 위해 HTTP 요청으로 제공됩니다. 배우기 위해 Google API를 사용하여 다양한 언어로 일괄 업데이트를 구현하는 방법 자세한 내용은 업데이트 스프레드시트를 사용합니다.

이 예에서 SPREADSHEET_IDSHEET_ID 자리표시자는 는 해당 ID를 제공할 위치를 나타냅니다. 스프레드시트 ID를 입력합니다. 얻을 수 있는 혜택 시트 IDspreadsheets.get 메서드를 사용하여 지도 가장자리에 패딩을 추가할 수 있습니다. 이 A1 표기법을 사용하여 범위를 지정합니다. 예시 범위는 Sheet1!A1:D5입니다.

한 행에 조건부 색상 그라디언트 추가

다음 spreadsheets.batchUpdate 드림 메서드 코드 샘플은 AddConditionalFormatRuleRequest 를 사용하여 각 그라데이션 색의 시트입니다. 첫 번째 규칙은 해당 행의 셀에 배경색을 사용하도록 명시합니다. 자동으로 설정할 수 있습니다 행의 가장 낮은 값은 진한 빨간색으로 표시되어 있습니다. 가장 높은 값은 밝은 녹색으로 표시됩니다. 다른 값의 색상 보간됩니다. 두 번째 규칙은 동일하지만 특정 숫자 값을 사용합니다. 그라데이션 끝점 (및 다른 색상)을 결정합니다. 이 요청은 sheets.InterpolationPointType 드림 type로 설정합니다.

요청 프로토콜은 아래와 같습니다.

POST https://sheets.googleapis.com/v4/spreadsheets/SPREADSHEET_ID:batchUpdate
{
  "requests": [
    {
      "addConditionalFormatRule": {
        "rule": {
          "ranges": [
            {
              "sheetId": SHEET_ID,
              "startRowIndex": 9,
              "endRowIndex": 10,
            }
          ],
          "gradientRule": {
            "minpoint": {
              "color": {
                "green": 0.2,
                "red": 0.8
              },
              "type": "MIN"
            },
            "maxpoint": {
              "color": {
                "green": 0.9
              },
              "type": "MAX"
            },
          }
        },
        "index": 0
      }
    },
    {
      "addConditionalFormatRule": {
        "rule": {
          "ranges": [
            {
              "sheetId": SHEET_ID,
              "startRowIndex": 10,
              "endRowIndex": 11,
            }
          ],
          "gradientRule": {
            "minpoint": {
              "color": {
                "green": 0.8,
                "red": 0.8
              },
              "type": "NUMBER",
              "value": "0"
            },
            "maxpoint": {
              "color": {
                "blue": 0.9,
                "green": 0.5,
                "red": 0.5
              },
              "type": "NUMBER",
              "value": "256"
            },
          }
        },
        "index": 1
      }
    },
  ]
}

요청 후 적용된 서식 규칙이 시트를 업데이트합니다. 경사 11행의 maxpoint가 256(으)로 설정되어 있으며 그보다 높은 모든 값은 maxpoint를 갖습니다. 색상:

그라데이션 형식 레시피 결과 추가

범위 집합에 조건부 서식 규칙 추가

다음 spreadsheets.batchUpdate 드림 메서드 코드 샘플은 AddConditionalFormatRuleRequest 시트의 A열과 C열에 대한 새 조건부 서식 규칙을 설정합니다. 이 규칙에서는 값이 10 이하인 셀에 배경이 있다고 명시합니다. 진한 빨간색으로 변경되었습니다. 규칙은 색인 0에 삽입되므로 우선순위가 다른 형식 규칙보다 우선합니다. 이 요청은 ConditionType 드림 다음으로 type BooleanRule입니다.

요청 프로토콜은 아래와 같습니다.

POST https://sheets.googleapis.com/v4/spreadsheets/SPREADSHEET_ID:batchUpdate
{
  "requests": [
    {
      "addConditionalFormatRule": {
        "rule": {
          "ranges": [
            {
              "sheetId": SHEET_ID,
              "startColumnIndex": 0,
              "endColumnIndex": 1,
            },
            {
              "sheetId": SHEET_ID,
              "startColumnIndex": 2,
              "endColumnIndex": 3,
            },
          ],
          "booleanRule": {
            "condition": {
              "type": "NUMBER_LESS_THAN_EQ",
              "values": [
                {
                  "userEnteredValue": "10"
                }
              ]
            },
            "format": {
              "backgroundColor": {
                "green": 0.2,
                "red": 0.8,
              }
            }
          }
        },
        "index": 0
      }
    }
  ]
}

요청 후 적용된 서식 규칙이 시트를 업데이트합니다.

조건부 서식 레시피 결과 추가

범위에 날짜 및 텍스트 조건부 서식 규칙 추가

다음 spreadsheets.batchUpdate 드림 메서드 코드 샘플은 AddConditionalFormatRuleRequest 를 사용하여 시트의 A1:D5 범위에 대한 새 조건부 서식 규칙을 설정한 다음 기반으로 합니다. 텍스트에 "비용" (대소문자를 구분하지 않음) 첫 번째 규칙은 셀 텍스트를 굵게 설정합니다. 만약 셀이 지난 주 이전의 날짜를 포함하는 경우 두 번째 규칙은 셀 텍스트를 기울임꼴로 설정하고 파란색으로 색상을 지정합니다. 이 요청은 ConditionType 드림 다음으로 type BooleanRule입니다.

요청 프로토콜은 아래와 같습니다.

POST https://sheets.googleapis.com/v4/spreadsheets/SPREADSHEET_ID:batchUpdate
{
  "requests": [
    {
      "addConditionalFormatRule": {
        "rule": {
          "ranges": [
            {
              "sheetId": SHEET_ID,
              "startRowIndex": 0,
              "endRowIndex": 5,
              "startColumnIndex": 0,
              "endColumnIndex": 4,
            }
          ],
          "booleanRule": {
            "condition": {
              "type": "TEXT_CONTAINS",
              "values": [
                {
                  "userEnteredValue": "Cost"
                }
              ]
            },
            "format": {
              "textFormat": {
                "bold": true
              }
            }
          }
        },
        "index": 0
      }
    },
    {
      "addConditionalFormatRule": {
        "rule": {
          "ranges": [
            {
              "sheetId": SHEET_ID,
              "startRowIndex": 0,
              "endRowIndex": 5,
              "startColumnIndex": 0,
              "endColumnIndex": 4,
            }
          ],
          "booleanRule": {
            "condition": {
              "type": "DATE_BEFORE",
              "values": [
                {
                  "relativeDate": "PAST_WEEK"
                }
              ]
            },
            "format": {
              "textFormat": {
                "italic": true,
                "foregroundColor": {
                  "blue": 1
                }
              }
            }
          }
        },
        "index": 1
      }
    }
  ]
}

요청 후 적용된 서식 규칙이 시트를 업데이트합니다. 이 예에서 현재 날짜가 2016년 9월 26일인 경우:

텍스트 및 날짜 조건부 서식 레시피 결과

범위에 맞춤 수식 규칙 추가

다음 spreadsheets.batchUpdate 드림 메서드 코드 샘플은 AddConditionalFormatRuleRequest 를 사용하여 시트의 B5:B8 범위에 대한 새 조건부 서식 규칙을 설정한 다음 생성할 수 있습니다. 이 규칙은 다음 셀의 곱을 계산합니다. A열과 B열입니다. 제품이 120보다 크면 셀 텍스트가 굵게 또는 기울임꼴을 사용합니다 이 요청은 ConditionType 드림 다음으로 type BooleanRule입니다.

요청 프로토콜은 아래와 같습니다.

POST https://sheets.googleapis.com/v4/spreadsheets/SPREADSHEET_ID:batchUpdate
{
  "requests": [
    {
      "addConditionalFormatRule": {
        "rule": {
          "ranges": [
            {
              "sheetId": SHEET_ID,
              "startColumnIndex": 2,
              "endColumnIndex": 3,
              "startRowIndex": 4,
              "endRowIndex": 8
            }
          ],
          "booleanRule": {
            "condition": {
              "type": "CUSTOM_FORMULA",
              "values": [
                {
                  "userEnteredValue": "=GT(A5*B5,120)"
                }
              ]
            },
            "format": {
              "textFormat": {
                "bold": true,
                "italic": true
              }
            }
          }
        },
        "index": 0
      }
    }
  ]
}

요청 후 적용된 서식 규칙이 시트를 업데이트합니다.

맞춤 조건부 서식 레시피 결과

조건부 서식 규칙 삭제

다음 spreadsheets.batchUpdate 드림 메서드 코드 샘플은 DeleteConditionalFormatRuleRequest 지정한 시트에서 색인이 0인 조건부 서식 규칙을 삭제합니다. 출처: SHEET_ID

요청 프로토콜은 아래와 같습니다.

POST https://sheets.googleapis.com/v4/spreadsheets/SPREADSHEET_ID:batchUpdate
{
  "requests": [
    {
      "deleteConditionalFormatRule": {
        "sheetId": SHEET_ID,
        "index": 0
      }
    }
  ]
}

조건부 서식 규칙 목록 읽기

다음 spreadsheets.get 메서드 코드 샘플은 제목, SHEET_ID, 모든 항목의 목록을 가져오는 방법을 보여줍니다. 조건부 서식 규칙입니다. fields 쿼리 매개변수는 반환할 데이터를 결정합니다.

요청 프로토콜은 아래와 같습니다.

GET https://sheets.googleapis.com/v4/spreadsheets/SPREADSHEET_ID?fields=sheets(properties(title,sheetId),conditionalFormats)

응답은 Spreadsheet 리소스 다음과 같은 배열을 포함합니다. Sheet개의 객체에 각각 a SheetProperties 요소의 배열과 ConditionalFormatRule 요소 지정된 응답 필드가 기본값으로 설정된 경우 생략됩니다. 삭제합니다. 이 요청은 ConditionType 드림 다음으로 type BooleanRule입니다.

{
  "sheets": [
    {
      "properties": {
        "sheetId": 0,
        "title": "Sheet1"
      },
      "conditionalFormats": [
        {
          "ranges": [
            {
              "startRowIndex": 4,
              "endRowIndex": 8,
              "startColumnIndex": 2,
              "endColumnIndex": 3
            }
          ],
          "booleanRule": {
            "condition": {
              "type": "CUSTOM_FORMULA",
              "values": [
                {
                  "userEnteredValue": "=GT(A5*B5,120)"
                }
              ]
            },
            "format": {
              "textFormat": {
                "bold": true,
                "italic": true
              }
            }
          }
        },
        {
          "ranges": [
            {
              "startRowIndex": 0,
              "endRowIndex": 5,
              "startColumnIndex": 0,
              "endColumnIndex": 4
            }
          ],
          "booleanRule": {
            "condition": {
              "type": "DATE_BEFORE",
              "values": [
                {
                  "relativeDate": "PAST_WEEK"
                }
              ]
            },
            "format": {
              "textFormat": {
                "foregroundColor": {
                  "blue": 1
                },
                "italic": true
              }
            }
          }
        },
        ...
      ]
    }
  ]
}

조건부 서식 규칙 또는 우선순위 업데이트

다음 spreadsheets.batchUpdate 드림 메서드 코드 샘플은 UpdateConditionalFormatRuleRequest 여러 번 요청할 수 있습니다 첫 번째 요청은 기존 조건부 형식을 이동합니다. 규칙을 더 높은 색인으로 변경합니다 (0에서 2로 우선순위 낮추기). 두 번째 요청이 색인 0의 조건부 서식 규칙을 새 규칙으로 바꿉니다. 는 A1:D5 범위입니다. 첫 번째 요청의 이동은 두 번째 요청이 시작되기 전에 완료되므로 두 번째 요청은 원래 1 색인에 있던 규칙을 대체합니다. 이 요청은 ConditionType 드림 다음으로 type BooleanRule입니다.

요청 프로토콜은 아래와 같습니다.

POST https://sheets.googleapis.com/v4/spreadsheets/SPREADSHEET_ID:batchUpdate
{
  "requests": [
    {
      "updateConditionalFormatRule": {
        "sheetId": SHEET_ID,
        "index": 0,
        "newIndex": 2
      },
      "updateConditionalFormatRule": {
        "sheetId": SHEET_ID,
        "index": 0,
        "rule": {
          "ranges": [
            {
              "sheetId": SHEET_ID,
              "startRowIndex": 0,
              "endRowIndex": 5,
              "startColumnIndex": 0,
              "endColumnIndex": 4,
            }
          ],
          "booleanRule": {
            "condition": {
              "type": "TEXT_EQ",
              "values": [
                {
                  "userEnteredValue": "Total Cost"
                }
              ]
            },
            "format": {
              "textFormat": {
                "bold": true
              }
            }
          }
        }
      }
    }
  ]
}