Sample code for 30+ languages & platforms
Dart

Google Sheets Conditional Formatting - Color Gradient

See more Google Sheets Examples

Add a conditional color gradient across a row

Chilkat Dart Downloads

Dart
import 'package:chilkat/chilkat.dart';

void main() {
  // This example assumes the Chilkat API to have been previously unlocked.
  // See Global Unlock Sample for sample code.

  final http = CkHttp();

  // Implements the following CURL command:

  // curl -H "Content-Type: application/json" \
  //    -H "Authorization: Bearer ACCESS_TOKEN" \
  //    -X POST \
  //    -d '{
  //   "requests": [
  //     {
  //       "addConditionalFormatRule": {
  //         "rule": {
  //           "ranges": [
  //             {
  //               "sheetId": sheetId,
  //               "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": sheetId,
  //               "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
  //       }
  //     },
  //   ]
  // }' https://sheets.googleapis.com/v4/spreadsheets/{spreadsheetId}:batchUpdate

  // Use the following online tool to generate HTTP code from a CURL command
  // Convert a cURL Command to HTTP Source Code

  // Use this online tool to generate code from sample JSON:
  // Generate Code to Create JSON

  // The following JSON is sent in the request body.

  // {
  //   "requests": [
  //     {
  //       "addConditionalFormatRule": {
  //         "rule": {
  //           "ranges": [
  //             {
  //               "sheetId": sheetId,
  //               "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": sheetId,
  //               "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
  //       }
  //     }
  //   ]
  // }

  final sheetId = 'YOUR_SHEET_ID';

  final json = CkJsonObject();
  json.updateString('requests[0].addConditionalFormatRule.rule.ranges[0].sheetId', sheetId);
  json.updateInt('requests[0].addConditionalFormatRule.rule.ranges[0].startRowIndex', 9);
  json.updateInt('requests[0].addConditionalFormatRule.rule.ranges[0].endRowIndex', 10);
  json.updateNumber('requests[0].addConditionalFormatRule.rule.gradientRule.minpoint.color.green', '0.2');
  json.updateNumber('requests[0].addConditionalFormatRule.rule.gradientRule.minpoint.color.red', '0.8');
  json.updateString('requests[0].addConditionalFormatRule.rule.gradientRule.minpoint.type', 'MIN');
  json.updateNumber('requests[0].addConditionalFormatRule.rule.gradientRule.maxpoint.color.green', '0.9');
  json.updateString('requests[0].addConditionalFormatRule.rule.gradientRule.maxpoint.type', 'MAX');
  json.updateInt('requests[0].addConditionalFormatRule.index', 0);
  json.updateString('requests[1].addConditionalFormatRule.rule.ranges[0].sheetId', sheetId);
  json.updateInt('requests[1].addConditionalFormatRule.rule.ranges[0].startRowIndex', 10);
  json.updateInt('requests[1].addConditionalFormatRule.rule.ranges[0].endRowIndex', 11);
  json.updateNumber('requests[1].addConditionalFormatRule.rule.gradientRule.minpoint.color.green', '0.8');
  json.updateNumber('requests[1].addConditionalFormatRule.rule.gradientRule.minpoint.color.red', '0.8');
  json.updateString('requests[1].addConditionalFormatRule.rule.gradientRule.minpoint.type', 'NUMBER');
  json.updateString('requests[1].addConditionalFormatRule.rule.gradientRule.minpoint.value', '0');
  json.updateNumber('requests[1].addConditionalFormatRule.rule.gradientRule.maxpoint.color.blue', '0.9');
  json.updateNumber('requests[1].addConditionalFormatRule.rule.gradientRule.maxpoint.color.green', '0.5');
  json.updateNumber('requests[1].addConditionalFormatRule.rule.gradientRule.maxpoint.color.red', '0.5');
  json.updateString('requests[1].addConditionalFormatRule.rule.gradientRule.maxpoint.type', 'NUMBER');
  json.updateString('requests[1].addConditionalFormatRule.rule.gradientRule.maxpoint.value', '256');
  json.updateInt('requests[1].addConditionalFormatRule.index', 1);

  // Adds the "Authorization: Bearer ACCESS_TOKEN" header.
  http.authToken = 'ACCESS_TOKEN';
  http.setRequestHeader('Content-Type', 'application/json');

  final resp = CkHttpResponse();
  try {
    http.httpJson('POST', 'https://sheets.googleapis.com/v4/spreadsheets/{spreadsheetId}:batchUpdate', json, 'application/json', resp);
  } on ChilkatException catch (e) {
    print(e.lastErrorText);
    return;
  }

  print('Status code: ${resp.statusCode}');
  print('Response body:');
  print(resp.bodyStr);
}