DataFlex
DataFlex
batchGet (Read Multiple Ranges)
See more Google Sheets Examples
Reads multiple ranges from a Google Sheets spreadsheet in one GET request.Chilkat DataFlex Downloads
Use ChilkatAx-win32.pkg
Procedure Test
Boolean iSuccess
Handle hoJsonToken
Variant vReq
Handle hoReq
Handle hoHttp
Variant vResp
Handle hoResp
Handle hoJson
Integer i
Integer iCount_i
Integer j
Integer iCount_j
Integer k
Integer iCount_k
String sSpreadsheetId
String sRange
String sMajorDimension
String sStrVal
String sTemp1
Boolean bTemp1
Move False To iSuccess
// 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..
Get Create (RefClass(cComChilkatJsonObject)) To hoJsonToken
If (Not(IsComObjectCreated(hoJsonToken))) Begin
Send CreateComObject of hoJsonToken
End
Get ComLoadFile Of hoJsonToken "qa_data/tokens/googleSheets.json" To iSuccess
Get ComHasMember Of hoJsonToken "access_token" To bTemp1
If (bTemp1 = False) Begin
Showln "No access token found."
Procedure_Return
End
// We'll be sending a GET request with query params to this URL: https://sheets.googleapis.com/v4/spreadsheets/spreadsheetId/values:batchGet?ranges=Sheet1!A1:A2&ranges=Sheet1!B1:B2
// The domain is "sheets.googleapis.com"
// The path is "/v4/spreadsheets/spreadsheetId/values:batchGet"
Get Create (RefClass(cComChilkatHttpRequest)) To hoReq
If (Not(IsComObjectCreated(hoReq))) Begin
Send CreateComObject of hoReq
End
Set ComPath Of hoReq To "/v4/spreadsheets/spreadsheetId/values:batchGet"
Set ComHttpVerb Of hoReq To "GET"
// Add each range to fetch.
Send ComAddParam To hoReq "ranges" "Sheet1!A1:A2"
Send ComAddParam To hoReq "ranges" "Sheet1!B1:B2"
Get Create (RefClass(cComChilkatHttp)) To hoHttp
If (Not(IsComObjectCreated(hoHttp))) Begin
Send CreateComObject of hoHttp
End
Get ComStringOf Of hoJsonToken "access_token" To sTemp1
Set ComAuthToken Of hoHttp To sTemp1
// 443 is the SSL/TLS port for HTTPS.
Get Create (RefClass(cComChilkatHttpResponse)) To hoResp
If (Not(IsComObjectCreated(hoResp))) Begin
Send CreateComObject of hoResp
End
Get pvComObject of hoReq to vReq
Get pvComObject of hoResp to vResp
Get ComHttpSReq Of hoHttp "sheets.googleapis.com" 443 True vReq vResp To iSuccess
If (iSuccess = False) Begin
Get ComLastErrorText Of hoHttp To sTemp1
Showln sTemp1
Procedure_Return
End
Get ComBodyStr Of hoResp To sTemp1
Showln sTemp1
Get Create (RefClass(cComChilkatJsonObject)) To hoJson
If (Not(IsComObjectCreated(hoJson))) Begin
Send CreateComObject of hoJson
End
Get ComBodyStr Of hoResp To sTemp1
Get ComLoad Of hoJson sTemp1 To iSuccess
// A sample response is shown below.
// To generate the parsing source code for a JSON response, paste
// the JSON into this online tool: Generate JSON parsing code
// {
// "spreadsheetId": "1_SO2L-Y6nCayNpNppJLF0r9yHB2UnaCleGCKeE4O0SA",
// "valueRanges": [
// {
// "range": "Sheet1!A1:A2",
// "majorDimension": "ROWS",
// "values": [
// [
// "Item"
// ],
// [
// "Wheel"
// ]
// ]
// },
// {
// "range": "Sheet1!B1:B2",
// "majorDimension": "ROWS",
// "values": [
// [
// "Cost"
// ],
// [
// "$20.50"
// ]
// ]
// }
// ]
// }
Get ComStringOf Of hoJson "spreadsheetId" To sSpreadsheetId
Move 0 To i
Get ComSizeOfArray Of hoJson "valueRanges" To iCount_i
While (i < iCount_i)
Set ComI Of hoJson To i
Get ComStringOf Of hoJson "valueRanges[i].range" To sRange
Get ComStringOf Of hoJson "valueRanges[i].majorDimension" To sMajorDimension
Move 0 To j
Get ComSizeOfArray Of hoJson "valueRanges[i].values" To iCount_j
While (j < iCount_j)
Set ComJ Of hoJson To j
Move 0 To k
Get ComSizeOfArray Of hoJson "valueRanges[i].values[j]" To iCount_k
While (k < iCount_k)
Set ComK Of hoJson To k
Get ComStringOf Of hoJson "valueRanges[i].values[j][k]" To sStrVal
Move (k + 1) To k
Loop
Move (j + 1) To j
Loop
Move (i + 1) To i
Loop
End_Procedure