Chilkat HOME .NET Core C# Android™ AutoIt C C# C++ Chilkat2-Python CkPython Classic ASP DataFlex Delphi ActiveX Delphi DLL Go Java Lianja Mono C# Node.js Objective-C PHP ActiveX PHP Extension Perl PowerBuilder PowerShell PureBasic Ruby SQL Server Swift 2 Swift 3,4,5... Tcl Unicode C Unicode C++ VB.NET VBScript Visual Basic 6.0 Visual FoxPro Xojo Plugin
(Objective-C) Google Sheets - Update (Set Values in a Range)Sets values in a range of a spreadsheet. This example will demonstrate by first getting a range, then changing some values in the JSON, and then HTTPS PUT the changes back to the Google Sheet. Note: This example requires Chilkat v9.5.0.76 or greater.
#import <CkoJsonObject.h> #import <CkoHttp.h> #import <NSString.h> #import <CkoHttpResponse.h> // This example requires the Chilkat API to have been previously unlocked. // See Global Unlock Sample for sample code. // This example uses a previously obtained access token having permission for the // Google Sheets scope. // In this example, Get Google Sheets OAuth2 Access Token, the access // token was saved to a JSON file. This example fetches the access token from the file.. CkoJsonObject *jsonToken = [[CkoJsonObject alloc] init]; BOOL success = [jsonToken LoadFile: @"qa_data/tokens/googleSheets.json"]; if ([jsonToken HasMember: @"access_token"] == NO) { NSLog(@"%@",@"No access token found."); return; } CkoHttp *http = [[CkoHttp alloc] init]; http.AuthToken = [jsonToken StringOf: @"access_token"]; // First get the cells in the range A1:B5 [http SetUrlVar: @"range" value: @"Sheet1!A1:B5"]; [http SetUrlVar: @"spreadsheetId" value: @"1_SO2L-Y6nCayNpNppJLF0r9yHB2UnaCleGCKeE4O0SA"]; NSString *jsonResponse = [http QuickGetStr: @"https://sheets.googleapis.com/v4/spreadsheets/{$spreadsheetId}/values/{$range}"]; if (http.LastMethodSuccess != YES) { NSLog(@"%@",http.LastErrorText); return; } NSLog(@"%@",jsonResponse); CkoJsonObject *json = [[CkoJsonObject alloc] init]; json.EmitCompact = NO; [json Load: jsonResponse]; // A sample response is shown below. // { // "range": "Sheet1!A1:B5", // "majorDimension": "ROWS", // "values": [ // [ // "Item", // "Cost" // ], // [ // "Wheel", // "$20.50" // ], // [ // "Door", // "$15" // ], // [ // "Engine", // "$100" // ], // [ // "Totals", // "$135.50" // ] // ] // } // We're going to change the cost of the Engine to $120, and the Totals to $155.50 json.I = [NSNumber numberWithInt:3]; json.J = [NSNumber numberWithInt:1]; [json UpdateString: @"values[i][j]" value: @"$120"]; json.I = [NSNumber numberWithInt:4]; [json UpdateString: @"values[i][j]" value: @"$155.50"]; // Show the updated JSON. NSLog(@"%@",[json Emit]); // -------------------------------------------------------- // Note: This example requires Chilkat v9.5.0.76 or greater. // -------------------------------------------------------- // Update the Google Sheet using a PUT request. json.EmitCompact = YES; NSString *urlToUpdate = @"https://sheets.googleapis.com/v4/spreadsheets/{$spreadsheetId}/values/{$range}?valueInputOption=USER_ENTERED"; NSString *xyz = [http QuickGetStr: urlToUpdate]; CkoHttpResponse *resp = [http PText: @"PUT" url: urlToUpdate textData: [json Emit] charset: @"utf-8" contentType: @"application/json" md5: NO gzip: NO]; if (http.LastMethodSuccess != YES) { NSLog(@"%@",http.LastErrorText); return; } // Examine the response.. NSLog(@"%@%d",@"response status code = ",[resp.StatusCode intValue]); NSLog(@"%@",@"response body:"); NSLog(@"%@",resp.BodyStr); // A sample response body: // { // "spreadsheetId": "1_SO2L-Y6nCayNpNppJLF0r9yHB2UnaCleGCKeE4O0SA", // "updatedRange": "Sheet1!A1:B5", // "updatedRows": 5, // "updatedColumns": 2, // "updatedCells": 10 // } |
© 2000-2024 Chilkat Software, Inc. All Rights Reserved.