2017-03-29 19 views
0

Googleシートを変更するためにPHP(Beta)用Google APIクライアントライブラリを使用しています。スプレッドシートの最初のワークシートにアクセスしてから変更を加えたいと思います。Google APIクライアントライブラリ(PHP)のプロパティへのアクセス

$service = new Google_Service_Sheets($this->client); 
$spreadsheet = $service->spreadsheets->get($google_sheet_id); 
$sheets = $spreadsheet->getSheets(); 

私はGoogle_Service_Sheets_Sheetの配列を持っています。もし私がvar_dump()の内容なら、私はmodelDataという保護された配列に必要なプロパティを見ることができます。私はsheetIdプロパティにアクセスしたいです。

... 
["modelData":protected]=> 
array(3) { 
    ["properties"]=> 
    array(5) { 
    ["sheetId"]=> 
    int(123456789) 
    ["title"]=> 
    string(15) "Page Popularity" 
    ["index"]=> 
    int(0) 
    ["sheetType"]=> 
    string(4) "GRID" 
    ["gridProperties"]=> 
    array(2) { 
     ["rowCount"]=> 
     int(4) 
     ["columnCount"]=> 
     int(4) 
    } 
    } 
... 

私は標準のPHPマジックのget/set構文を含むと思いますが何も動作しません。

$id = $sheets[0]->getSheetId(); // fails 
$id = $sheets[0]->sheetId; // fails 
$id = $sheets[0]->get('sheetId'); // fails 

このオブジェクトのプロパティにアクセスするにはどうすればよいですか?あなたはシートのAPI上の画像で enter image description here

ためReferenceをチェックすることをお勧めします

答えて

0

、シート(object)はsheetIDを(あなたが取得したいものを)含まれているプロパティ(オブジェクト)を持っています。それを短くするために、それは次のようになります。

Sheets->properties->sheetID 

または:

Sheets:{ 
    properties:{ 
     "sheetId": number, 
     "title": string, 
     "index": number, 
     ........ 
}, 
............ 
} 

このpostからコードをチェックしてみてください。このことができます

sheet_metadata = service.spreadsheets().get(spreadsheetId=spreadsheet_id).execute() 
sheets = sheet_metadata.get('sheets', '') 
title = sheets[0].get("properties", {}).get("title", "Sheet1") 
sheet_id = sheets[0].get("properties", {}).get("sheetId", 0) 

希望を。

関連する問題