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