การจัดรูปแบบตามเงื่อนไข

Google Sheets API ช่วยให้คุณสร้างและอัปเดตกฎการจัดรูปแบบตามเงื่อนไขได้ ในสเปรดชีต การจัดรูปแบบบางประเภทเท่านั้น (ตัวหนา ตัวเอียง ขีดทับ สีพื้นหน้าและสีพื้นหลัง) สามารถควบคุมได้ผ่านแบบมีเงื่อนไข การจัดรูปแบบ ตัวอย่างในหน้านี้แสดงถึงวิธีการบรรลุ การจัดรูปแบบตามเงื่อนไขด้วย Sheets API

ตัวอย่างเหล่านี้จะแสดงเป็นคำขอ HTTP เพื่อเป็นกลางทางภาษา เพื่อเรียนรู้ วิธีนำการอัปเดตแบบกลุ่มไปใช้ในภาษาต่างๆ โดยใช้ Google API ไลบรารีของไคลเอ็นต์ โปรดดูการอัปเดต สเปรดชีต

ในตัวอย่างต่อไปนี้ ตัวยึดตำแหน่ง SPREADSHEET_ID และ SHEET_ID จะระบุตําแหน่งที่คุณจะส่งรหัสเหล่านั้น คุณจะพบสเปรดชีต รหัสใน URL ของสเปรดชีต คุณสามารถ รหัสชีตโดยใช้เมธอด spreadsheets.get มีการระบุช่วงโดยใช้รูปแบบ A1 CANNOT TRANSLATE ช่วงตัวอย่างคือ Sheet1!A1:D5

เพิ่มการไล่ระดับสีแบบมีเงื่อนไขในแถว

ดังต่อไปนี้ spreadsheets.batchUpdate ตัวอย่างโค้ดเมธอดจะแสดงวิธีใช้ AddConditionalFormatRuleRequest เพื่อสร้างกฎการจัดรูปแบบตามเงื่อนไขของการไล่ระดับสีใหม่สำหรับแถว 10 และ 11 ของ ชีต กฎแรกระบุว่าเซลล์ในแถวนั้นมีสีพื้นหลัง ตั้งค่าตามค่าของเมตริก ค่าต่ำสุดในแถวจะเป็นสีแดงเข้ม ขณะที่ค่าสูงสุดจะแสดงสีเขียวสด สีของค่าอื่นๆ ในช่วง กฎข้อที่สองทำเช่นเดียวกัน แต่มีค่าตัวเลขที่เจาะจง กำหนดจุดสิ้นสุดการไล่ระดับสี (และสีต่างๆ) คำขอใช้ 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 ตั้งค่าจุดสูงสุดเป็น 256 ค่าใดๆ ที่อยู่เหนือจะมีจุดสูงสุด สี:

เพิ่มผลการค้นหาสูตรอาหารในรูปแบบการไล่ระดับสี

เพิ่มกฎการจัดรูปแบบตามเงื่อนไขในชุดของช่วง

ดังต่อไปนี้ 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
      }
    }
  ]
}

หลังจากส่งคำขอแล้ว กฎการจัดรูปแบบที่ใช้จะอัปเดตชีต ในตัวอย่างนี้ วันที่ปัจจุบันคือ 9/26/2016

ผลการค้นหาสูตรอาหารในรูปแบบข้อความและวันที่แบบมีเงื่อนไข

เพิ่มกฎของสูตรที่กำหนดเองลงในช่วง

ดังต่อไปนี้ 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 รายการ CANNOT TRANSLATE 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 โดยลดลำดับความสำคัญ) องค์ประกอบที่ 2 คำขอแทนที่กฎการจัดรูปแบบตามเงื่อนไขที่ดัชนี 0 ด้วยกฎใหม่ ที่จัดรูปแบบเซลล์ที่มีข้อความที่ระบุทุกประการ ("ค่าใช้จ่ายทั้งหมด") ใน ช่วง A1:D5 การย้ายคำขอแรกเสร็จสมบูรณ์ก่อนที่คำขอที่สองจะเริ่มต้น ดังนั้น คำขอที่ 2 จะแทนที่กฎซึ่งเดิมอยู่ในดัชนี 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
              }
            }
          }
        }
      }
    }
  ]
}