[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) { } } }