التنسيق المشروط

تتيح لك Google Sheets API إنشاء قواعد التنسيق الشرطي وتعديلها. في جداول البيانات. أنواع تنسيق معينة فقط (غامق، مائل، يتوسطه خط، ولون المقدمة ولون الخلفية) من خلال شرطي والتنسيق. توضح الأمثلة الموجودة في هذه الصفحة كيفية تحقيق القيم المشتركة عمليات التنسيق الشرطي باستخدام Sheets API.

ويتم تقديم هذه الأمثلة في صورة طلبات HTTP لتكون محايدة اللغة. للتعلّم كيفية تنفيذ تحديث مجمّع بلغات مختلفة باستخدام Google API مكتبات العملاء، راجع تحديث جداول البيانات.

في هذه الأمثلة، العنصران النائبان SPREADSHEET_ID وSHEET_ID يشير إلى مكان تقديم أرقام التعريف هذه. يمكنك العثور على جدول البيانات ID في عنوان URL لجدول البيانات. يمكنك الحصول على معرّف الورقة باستخدام spreadsheets.get تشير رسالة الأشكال البيانية يتم تحديد النطاقات باستخدام ترميز A1. إنّ مثال النطاق هو 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
      }
    }
  ]
}

بعد الطلب، تعدِّل قاعدة التنسيق المطبَّقة ورقة البيانات. في هذا المثال، فإن التاريخ الحالي هو 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 على 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، ما يؤدي إلى انخفاض أولويتها). الفرصة الثانية يستبدل الطلب قاعدة التنسيق الشرطي في الفهرس 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
              }
            }
          }
        }
      }
    }
  ]
}