LoginSignup
5
3

More than 3 years have passed since last update.

[PHP] SheetAPIでAppendする時にはスプレッドシート側ではフィルターかけてると挙動が変わるので注意

Posted at
    /**
     * データ書き込み
     *
     * @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で取得して的確な行にデータを入れておく処理を追加する。

5
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
3