我正在使用Google API客户端库(PHP)来更改Google表格。我想访问电子表格中的第一个工作表,然后对其进行更改。
$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魔法获取/设置语法,但没有任何作用。
$id = $sheets[0]->getSheetId(); // fails
$id = $sheets[0]->sheetId; // fails
$id = $sheets[0]->get('sheetId'); // fails
如何访问此对象的属性?
答案 0 :(得分:0)
您可能需要查看Sheets API的Reference
在上图中,工作表(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)
希望这有帮助。