毎日やる作業から逃れたい

この記事は約3分で読めます。

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データは二次元配列にする必要があります。

コメント

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