/**
* データ書き込み
*
* @param array $data
* @throws \Exception
*/
private function append(array $data)
{
$value = new Google_Service_Sheets_ValueRange();
try
{
foreach ($data as $val)
{
$value->setValues(['values' => array_values($val)]);
$this->service->spreadsheets_values->append($this->spreadsheetId, "シート1!A1", $value, ['valueInputOption' => 'USER_ENTERED']);
}
}
catch (\Exception $e)
{
\Log::error($e);
}
}
こんな感じでとりあえずA1とかA2にしておくと、入力がすでにある行は無視して直近の空白に埋め込みがされる仕様になっているが、これが出力先のスプレッドシートがフィルター掛けられているとうまく作動しない。
なので、暫定処置として、フィルターを解除するか、毎回最終行をAPIで取得して的確な行にデータを入れておく処理を追加する。