SQL Server
SQL Server
Google Sheets - Read a Single Range
See more Google Sheets Examples
Reads the values stored in the range Sheet1!A1:B5 and returns them in the response.Chilkat SQL Server Downloads
-- Important: See this note about string length limitations for strings returned by sp_OAMethod calls.
--
CREATE PROCEDURE ChilkatSample
AS
BEGIN
DECLARE @hr int
DECLARE @iTmp0 int
-- Important: Do not use nvarchar(max). See the warning about using nvarchar(max).
DECLARE @sTmp0 nvarchar(4000)
DECLARE @success int
SELECT @success = 0
-- 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..
DECLARE @jsonToken int
EXEC @hr = sp_OACreate 'Chilkat.JsonObject', @jsonToken OUT
IF @hr <> 0
BEGIN
PRINT 'Failed to create ActiveX component'
RETURN
END
EXEC sp_OAMethod @jsonToken, 'LoadFile', @success OUT, 'qa_data/tokens/googleSheets.json'
EXEC sp_OAMethod @jsonToken, 'HasMember', @iTmp0 OUT, 'access_token'
IF @iTmp0 = 0
BEGIN
PRINT 'No access token found.'
EXEC @hr = sp_OADestroy @jsonToken
RETURN
END
DECLARE @http int
EXEC @hr = sp_OACreate 'Chilkat.Http', @http OUT
EXEC sp_OAMethod @jsonToken, 'StringOf', @sTmp0 OUT, 'access_token'
EXEC sp_OASetProperty @http, 'AuthToken', @sTmp0
EXEC sp_OASetProperty @http, 'SessionLogFilename', 'qa_output/sessionLog.txt'
-- Get the cells defined by the range A1:B5
DECLARE @jsonResponse nvarchar(4000)
EXEC sp_OAMethod @http, 'QuickGetStr', @jsonResponse OUT, 'https://sheets.googleapis.com/v4/spreadsheets/spreadsheetId/values/Sheet1!A1:B5'
EXEC sp_OAGetProperty @http, 'LastMethodSuccess', @iTmp0 OUT
IF @iTmp0 <> 1
BEGIN
EXEC sp_OAGetProperty @http, 'LastErrorText', @sTmp0 OUT
PRINT @sTmp0
EXEC @hr = sp_OADestroy @jsonToken
EXEC @hr = sp_OADestroy @http
RETURN
END
PRINT @jsonResponse
DECLARE @json int
EXEC @hr = sp_OACreate 'Chilkat.JsonObject', @json OUT
EXEC sp_OAMethod @json, 'Load', @success OUT, @jsonResponse
-- 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
-- {
-- "range": "Sheet1!A1:B5",
-- "majorDimension": "ROWS",
-- "values": [
-- [
-- "Item",
-- "Cost"
-- ],
-- [
-- "Wheel",
-- "$20.50"
-- ],
-- [
-- "Door",
-- "$15"
-- ],
-- [
-- "Engine",
-- "$100"
-- ],
-- [
-- "Totals",
-- "$135.50"
-- ]
-- ]
-- }
DECLARE @i int
DECLARE @count_i int
DECLARE @j int
DECLARE @count_j int
DECLARE @range nvarchar(4000)
EXEC sp_OAMethod @json, 'StringOf', @range OUT, 'range'
DECLARE @majorDimension nvarchar(4000)
EXEC sp_OAMethod @json, 'StringOf', @majorDimension OUT, 'majorDimension'
SELECT @i = 0
EXEC sp_OAMethod @json, 'SizeOfArray', @count_i OUT, 'values'
WHILE @i < @count_i
BEGIN
EXEC sp_OASetProperty @json, 'I', @i
SELECT @j = 0
EXEC sp_OAMethod @json, 'SizeOfArray', @count_j OUT, 'values[i]'
WHILE @j < @count_j
BEGIN
EXEC sp_OASetProperty @json, 'J', @j
DECLARE @strVal nvarchar(4000)
EXEC sp_OAMethod @json, 'StringOf', @strVal OUT, 'values[i][j]'
SELECT @j = @j + 1
END
SELECT @i = @i + 1
END
EXEC @hr = sp_OADestroy @jsonToken
EXEC @hr = sp_OADestroy @http
EXEC @hr = sp_OADestroy @json
END
GO