今回は小ネタですが、セルに PHP のUNIT-TIMEデータを日付型データとして設定し、日付の書式で表示させる方法について説明したいと思います。
■「PHPToExcel」を使ったセルへの日付型データの設定
セルに日付型データを設定するには Date クラスの PHPToExcel メソッドで PHP の日付データ(UNIX-TIME) をエクセルの date/time 値に変換したものを設定します。 PHPToExcel メソッドは static な関数なので Date::PHPToExcel と直接書くことができます。
以下に簡単な例を示します。 [A2] セルに現在時刻を設定し、そのセルの書式スタイルを日付表示の設定で行っています。
<?php // ライブラリ読込 require '../vendor/autoload.php'; use PhpOffice\PhpSpreadsheet\Spreadsheet; use PhpOffice\PhpSpreadsheet\Style\NumberFormat; use PhpOffice\PhpSpreadsheet\Shared\Date; use PhpOffice\PhpSpreadsheet\Writer\Xlsx; // Spreadsheetオブジェクト生成 $objSpreadsheet = new Spreadsheet(); // ワークシートオブジェクト $objSheet = $objSpreadsheet->getActiveSheet(); // セルにシステム時刻(Unix Time)を設定 $objSheet->setCellValue('A2', Date::PHPToExcel(time())); // スタイルオブジェクト取得([A2]セル) $objStyle = $objSheet->getStyle('A2')->getNumberFormat()->setFormatCode('yyyy"年"m"月"d"日";@'); // [test6-a2.xlsx]:Excel2007形式で保存する $objWriter = new Xlsx($objSpreadsheet); $objWriter->save('test6-a2.xlsx'); exit(); ?>
出力されたエクセルファイルを見てみると以下の様になります。[A]列の幅は便宜上広くして表示しました。
PR
コメント