PHP Google Sheets API 行・列の挿入・削除 insertDimension, deleteDimension

Google Sheets API PHP 行の追加・削除 google

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),
  )
 )
);

コメント

タイトルとURLをコピーしました