Sample code for 30+ languages & platforms
Objective-C

Google Sheets Conditional Formatting - Color Gradient

See more Google Sheets Examples

Add a conditional color gradient across a row

Chilkat Objective-C Downloads

Objective-C
#import <CkoHttp.h>
#import <NSString.h>
#import <CkoJsonObject.h>
#import <CkoHttpResponse.h>

BOOL success = NO;

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

CkoHttp *http = [[CkoHttp alloc] init];

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

NSString *sheetId = @"YOUR_SHEET_ID";

CkoJsonObject *json = [[CkoJsonObject alloc] init];
[json UpdateString: @"requests[0].addConditionalFormatRule.rule.ranges[0].sheetId" value: sheetId];
[json UpdateInt: @"requests[0].addConditionalFormatRule.rule.ranges[0].startRowIndex" value: [NSNumber numberWithInt: 9]];
[json UpdateInt: @"requests[0].addConditionalFormatRule.rule.ranges[0].endRowIndex" value: [NSNumber numberWithInt: 10]];
[json UpdateNumber: @"requests[0].addConditionalFormatRule.rule.gradientRule.minpoint.color.green" numericStr: @"0.2"];
[json UpdateNumber: @"requests[0].addConditionalFormatRule.rule.gradientRule.minpoint.color.red" numericStr: @"0.8"];
[json UpdateString: @"requests[0].addConditionalFormatRule.rule.gradientRule.minpoint.type" value: @"MIN"];
[json UpdateNumber: @"requests[0].addConditionalFormatRule.rule.gradientRule.maxpoint.color.green" numericStr: @"0.9"];
[json UpdateString: @"requests[0].addConditionalFormatRule.rule.gradientRule.maxpoint.type" value: @"MAX"];
[json UpdateInt: @"requests[0].addConditionalFormatRule.index" value: [NSNumber numberWithInt: 0]];
[json UpdateString: @"requests[1].addConditionalFormatRule.rule.ranges[0].sheetId" value: sheetId];
[json UpdateInt: @"requests[1].addConditionalFormatRule.rule.ranges[0].startRowIndex" value: [NSNumber numberWithInt: 10]];
[json UpdateInt: @"requests[1].addConditionalFormatRule.rule.ranges[0].endRowIndex" value: [NSNumber numberWithInt: 11]];
[json UpdateNumber: @"requests[1].addConditionalFormatRule.rule.gradientRule.minpoint.color.green" numericStr: @"0.8"];
[json UpdateNumber: @"requests[1].addConditionalFormatRule.rule.gradientRule.minpoint.color.red" numericStr: @"0.8"];
[json UpdateString: @"requests[1].addConditionalFormatRule.rule.gradientRule.minpoint.type" value: @"NUMBER"];
[json UpdateString: @"requests[1].addConditionalFormatRule.rule.gradientRule.minpoint.value" value: @"0"];
[json UpdateNumber: @"requests[1].addConditionalFormatRule.rule.gradientRule.maxpoint.color.blue" numericStr: @"0.9"];
[json UpdateNumber: @"requests[1].addConditionalFormatRule.rule.gradientRule.maxpoint.color.green" numericStr: @"0.5"];
[json UpdateNumber: @"requests[1].addConditionalFormatRule.rule.gradientRule.maxpoint.color.red" numericStr: @"0.5"];
[json UpdateString: @"requests[1].addConditionalFormatRule.rule.gradientRule.maxpoint.type" value: @"NUMBER"];
[json UpdateString: @"requests[1].addConditionalFormatRule.rule.gradientRule.maxpoint.value" value: @"256"];
[json UpdateInt: @"requests[1].addConditionalFormatRule.index" value: [NSNumber numberWithInt: 1]];

//  Adds the "Authorization: Bearer ACCESS_TOKEN" header.
http.AuthToken = @"ACCESS_TOKEN";
[http SetRequestHeader: @"Content-Type" value: @"application/json"];

CkoHttpResponse *resp = [[CkoHttpResponse alloc] init];
success = [http HttpJson: @"POST" url: @"https://sheets.googleapis.com/v4/spreadsheets/{spreadsheetId}:batchUpdate" json: json contentType: @"application/json" response: resp];
if (success == NO) {
    NSLog(@"%@",http.LastErrorText);
    return;
}

NSLog(@"%@%d",@"Status code: ",[resp.StatusCode intValue]);
NSLog(@"%@",@"Response body:");
NSLog(@"%@",resp.BodyStr);