Pablo
Pablo

Reputation: 1141

PHP Google Spreadsheets choose sheet to write in

I'm implementing an integration with Google Spreadsheets API and PHP. I'm using the library suggested by google.

I need to have many sheets (pages) in the same file. So far, I found that I can create new pages using something like this:

    $body = new Google_Service_Sheets_BatchUpdateSpreadsheetRequest(array(
        'requests' => array('addSheet' => array('properties' => array('title' => $title )))));

    $result = $service->spreadsheets->batchUpdate(SHEET_ID,$body);

But how can I choose when to write on one sheet(page) or the other? Is there some method that allows me to choose the sheet by it's label?

Hope you can help me.

Upvotes: 0

Views: 95

Answers (1)

droidBomb
droidBomb

Reputation: 880

Rather than specifying a sheet alone, based on the Basic Writing sample, you can write on a specific range on a specific sheet using a PUT method:

PUT https://sheets.googleapis.com/v4/spreadsheets/spreadsheetId/values/Sheet1!A1:D5?valueInputOption=USER_ENTERED

This spreadsheets.values.update request will write the values on the cells from A1 to D5 on Sheet1. Note that the ValueInputOption query parameter is required and determines if the values written will be parsed (for example, whether or not a string is converted into a date).

The request body would then look like this:

{
  "range": "Sheet1!A1:D5",
  "majorDimension": "ROWS",
  "values": [
    ["Item", "Cost", "Stocked", "Ship Date"],
    ["Wheel", "$20.50", "4", "3/1/2016"],
    ["Door", "$15", "2", "3/15/2016"],
    ["Engine", "$100", "1", "30/20/2016"],
    ["Totals", "=SUM(B2:B4)", "=SUM(C2:C4)", "=MAX(D2:D4)"]
  ],
}

Upvotes: 1

Related Questions