Google API PHP Client スプレッドシート更新 更新しないセルのやり方

google sheets api セルを一部更新しない google

Google_Service_Sheets_ValueRange(array(‘range’=>$range, ‘values’=>$vals));
とかで、複数セルを一気に更新するのですが、例えばA1:A3を更新するけどA2は既存のままで更新したくない時とかありますよね?

$v=array(); $v=””; $vals[] = $v; とか、””でやったらと思うんですが、これだとセルの値に何も入れないのをセットする、つまり何か値があったら消されてしまいます。

スポンサーリンク

セルの更新をスキップするにはGoogle_Model::NULL_VALUEをセットする

A1:A3を更新するとして、A2をスキップしたいなら下記になります。

$vals = array();
$v=array(); $v[] = "これはA1"; $vals[]=$v;
$v=array(); $v[] = Google_Model::NULL_VALUE; $vals[]=$v;//A2がスキップ
$v=array(); $v[] = "これはA3"; $vals[]=$v;

$range = "Sheet1!A1";
$datas = array();
$datas[] = new Google_Service_Sheets_ValueRange(array('range'=>$range, 'values'=>$vals));

あとはGoogle Client APIに任せればOKです。

例えば、シートのテンプレートがあって、必要なデータをbatchUpdateかけたい時、更新したくないセルが途中にあったら、valuerangeを分けてやるのも手ですが面倒ですね。
途中のセルは更新しない、というフラグGoogle_Model::NULL_VALUEで何もしないようにすればOKですね。

コメント

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