PHPでGoogle Client Library経由で行(or 列)の追加・削除はほぼ同じ書き方で出来ます。
1. 基本はGoogle_Service_Sheets_Request()
Sheetsのデータ以外の操作(セルの書式変更、行の追加・削除、セルの結合など)は基本的にはGoogle_Service_Sheets_Request()オブジェクトを作り、Google_Service_Sheets_BatchUpdateSpreadsheetRequest()、spreadsheets->batchUpdate()を呼びます。
//渡すデータ $datas = array(); $datas[] = new Google_Service_Sheets_Request(array( //行追加、削除、セルの書式変更などを定義 ) ); //スプレッドシートRequestオブジェクト作成 $req = new Google_Service_Sheets_BatchUpdateSpreadsheetRequest([ 'request'=>$datas]); //更新する $res = $service->spreadsheets->batchUpdate($fileid, $req);
2. 行の追加
先ほど、Google_Service_Sheets_Request()内に書けばOKと説明しました。
実際に書く内容は下記公式のrequests以下をセットすればOKです。

Row & column operations | Google Sheets | Google Developers
$datas = new Google_Service_Sheets_Request(array( 'insertDimension' => array( 'range' => array( 'sheetId' => シートID(どのシートか) 'dimension' => 'ROWS', //行を追加する 'startIndex' => $rowidx, 'endIndex' => ($rowidx+num), ), 'inheritFromBefore' => true ) );
inheritFromBeforeは、以前の行の状態を継承するか。境界線(border)など設定されていればそれを引き継いで行(列)を追加します。
3. 行の削除
行の追加のinsertDimension -> deleteDimensionに変更し、inheritFromBefore行を消せばOKです。
$datas = new Google_Service_Sheets_Request(array( 'deleteDimension' => array( 'range' => array( 'sheetId' => シートID(どのシートか) 'dimension' => 'ROWS', //行を追加する 'startIndex' => $rowidx, 'endIndex' => ($rowidx+num), ) ) );
コメント