[PHP] Google Sheets API でシート名・シートIDを取得する
Google Sheets API を使って PHP プログラムから、スプレッドシートにあるシート名とシート ID を取得する方法。
スプレッドシートにはタイトルとスプレッドシート ID があるが、シートにも 1 枚づつシート名と、シート ID がある。
シート名とは、シートの下のタブにある(名前を変更しないと)「シート1」とかのことで、シート ID は、 URL にある gid 以降に書かれている数値。
URL の例 : https://docs.google.com/spreadsheets/d/spreadsheetId/edit#gid=sheetId
シート名を取得する
$service = new Google_Service_Sheets($client);
// スプレッドシートの URL にある spreadsheetId
$spreadsheetId = '1BxiMVs0XRA5nFMdKvBdBZjgmUUqpt---------';
$response = $service->spreadsheets->get($spreadsheetId);
foreach($response->getSheets() as $sheet) {
echo $sheet['properties']['title'];
// または
echo $sheet->properties->title;
}
$sheet['properties']['title'] でも、 $sheet->properties->title でも、取得できる。
シート ID を取得する
$response = $service->spreadsheets->get($spreadsheetId);
foreach($response->getSheets() as $sheet) {
echo $sheet['properties']['sheetId'];
// または
echo $sheet->properties->sheetId;
}
シート ID は 1 枚目のシート(「シート1」)は、 0 になるみたい。
SheetProperties の中身
properties という要素の中身をダンプしてみた。
echo "";
var_dump($response->getSheets()[0]['properties']);
echo "
";
出力結果
object(Google_Service_Sheets_SheetProperties)#78 (14) {
["gridPropertiesType":protected]=>
string(36) "Google_Service_Sheets_GridProperties"
["gridPropertiesDataType":protected]=>
string(0) ""
["hidden"]=>
NULL
["index"]=>
int(0)
["rightToLeft"]=>
NULL
["sheetId"]=>
int(0)
["sheetType"]=>
string(4) "GRID"
["tabColorType":protected]=>
string(27) "Google_Service_Sheets_Color"
["tabColorDataType":protected]=>
string(0) ""
["title"]=>
string(10) "シート1"
["internal_gapi_mappings":protected]=>
array(0) {
}
["modelData":protected]=>
array(0) {
}
["processed":protected]=>
array(0) {
}
["gridProperties"]=>
object(Google_Service_Sheets_GridProperties)#79 (10) {
["columnCount"]=>
int(26)
["columnGroupControlAfter"]=>
NULL
["frozenColumnCount"]=>
NULL
["frozenRowCount"]=>
NULL
["hideGridlines"]=>
NULL
["rowCount"]=>
int(1000)
["rowGroupControlAfter"]=>
NULL
["internal_gapi_mappings":protected]=>
array(0) {
}
["modelData":protected]=>
array(0) {
}
["processed":protected]=>
array(0) {
}
}
}