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ですね。
コメント