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);