php,Laravel環境からスプレッドシートに吐き出すプログラムです。
use App\Http\Library\GoogleSheet; $spreadsheetId = self::SPREDSHEET_ID; $sheet = new GoogleSheet($spreadsheetId); $sheet->csvUpdate($csvData, $spreadsheetId); public function csvUpdate($projectData, $spreadsheetId) { $response = $this->service->spreadsheets->get($spreadsheetId); $sheets = $response->getSheets(); $sheetId = ""; foreach ($sheets as $sheet) { $properties = $sheet->getProperties(); if ("シート名" === $properties->getTitle()) { $sheetId = $properties->getSheetId(); // シートID } } $body = new \Google_Service_Sheets_BatchUpdateSpreadsheetRequest([ 'requests' => [ 'updateCells' => [ 'range' => [ 'sheetId' => $sheetId ], 'fields' => 'userEnteredValue,userEnteredFormat' // データ&セルの装飾をクリア ] ] ]); $this->service->spreadsheets->batchUpdate($spreadsheetId, $body); $range = "シート名!A1:AF10000"; $data = []; $data[] = new \Google_Service_Sheets_ValueRange([ 'range' => $range, 'values' => $projectData ]); $body = new \Google_Service_Sheets_BatchUpdateValuesRequest([ 'valueInputOption' => "USER_ENTERED", 'data' => $data ]); $this->service->spreadsheets_values->batchUpdate($this->spreadsheetId, $body); } }
csvデータは二次元配列にする必要があります。
コメント