Google ชีต API ช่วยให้คุณสร้างและอัปเดตกฎการจัดรูปแบบตามเงื่อนไขในสเปรดชีตได้ เฉพาะการจัดรูปแบบบางประเภทเท่านั้น (ตัวหนา ตัวเอียง ตัวขีดทับ สีพื้นหน้า และสีพื้นหลัง) ที่ควบคุมผ่านการจัดรูปแบบตามเงื่อนไขได้ ตัวอย่างในหน้านี้แสดงวิธีดำเนินการรูปแบบตามเงื่อนไขทั่วไปด้วย Sheets API
ตัวอย่างเหล่านี้แสดงเป็นคำขอ HTTP เพื่อไม่ระบุภาษา ดูวิธีใช้การอัปเดตแบบเป็นกลุ่มในภาษาต่างๆ โดยใช้ไลบรารีไคลเอ็นต์ Google API ได้ที่อัปเดตสเปรดชีต
ในตัวอย่างเหล่านี้ ตัวยึดตําแหน่ง SPREADSHEET_ID และ SHEET_ID จะระบุตําแหน่งที่คุณควรระบุรหัสเหล่านั้น คุณจะพบรหัสสเปรดชีตใน URL ของสเปรดชีต คุณรับรหัสชีตได้โดยใช้เมธอด spreadsheets.get
โดยระบุช่วงโดยใช้รูปแบบ A1 ตัวอย่างช่วงคือ Sheet1!A1:D5
เพิ่มการไล่ระดับสีแบบมีเงื่อนไขในแถว
ตัวอย่างโค้ดเมธอด spreadsheets.batchUpdate
ต่อไปนี้แสดงวิธีใช้ AddConditionalFormatRuleRequest
เพื่อตั้งค่ากฎการจัดรูปแบบตามเงื่อนไขแบบไล่ระดับสีใหม่สำหรับแถวที่ 10 และ 11 ของชีต กฎแรกระบุว่าเซลล์ในแถวนั้นจะมีสีพื้นหลังที่กำหนดตามค่าของเซลล์ ค่าต่ำสุดในแถวจะเป็นสีแดงเข้ม ส่วนค่าสูงสุดจะเป็นสีเขียวสด ระบบจะหาค่าสีของค่าอื่นๆ กฎที่ 2 ทํางานแบบเดียวกัน แต่ใช้ค่าตัวเลขที่เฉพาะเจาะจงเพื่อกําหนดจุดสิ้นสุดของการไล่ระดับสี (และสีต่างๆ) คำขอใช้ 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 ในชีต โดยอิงตามค่าวันที่และข้อความในเซลล์เหล่านั้น หากข้อความมีสตริง "ต้นทุน" (ไม่คำนึงถึงตัวพิมพ์เล็กและตัวพิมพ์ใหญ่) กฎแรกจะตั้งค่าข้อความของเซลล์เป็นตัวหนา หากเซลล์มีวันที่เกิดขึ้นก่อนสัปดาห์ที่ผ่านมา กฎที่ 2 จะตั้งค่าข้อความในเซลล์เป็นแบบตัวเอียงและเปลี่ยนเป็นสีน้ำเงิน คำขอใช้ 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 } } ] }
หลังจากส่งคำขอแล้ว กฎการจัดรูปแบบที่ใช้จะอัปเดตชีต ในตัวอย่างนี้ วันที่ปัจจุบันคือ 26/9/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
แต่ละรายการมีองค์ประกอบ 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 จะเริ่ม ดังนั้นคําขอที่ 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 } } } } } } ] }