update: 507view
【PHP】Excelファイルに出力
PHPで取得したデータをExcelファイルに書き出したい場合、csvへの書き出しと違って意外と手こずりましたっっっ
今回はその手順です。
PHPでExcelファイルに出力の仕方
csvは文字サイズや列幅やセルの高さ、レイアウトまでの情報は持ちません。
csvは値だけを持ちますが、Excelは文字サイズもフォントの種類もフォントの色、印刷範囲などの情報を持ちます。そのため、PHPで値を出力するのに、A4に収まるようレイアウト調整したExcelファイルの特定のセルに出力、が可能なんです!!
Excelファイルに書き出しするまでの流れ
PHPでExcelファイルの書き出しをするならPhpSpreadsheetのライブラリを使用します。
PhpSpreadsheetをインストールするには、まずcomposerのインストールが必要になります。
Composerをインストール
Composerの公式サイトからダウンロードします。
赤枠のDownloadをクリック
赤枠のComposer-Setup.exeをクリックでダウンロードが実行します。
ダウンロードしたComposer-Setup.exeを起動し、インストールを行います。
PhpSpreadsheetをインストール
コマンドに下記を記述します。
composer require phpoffice/phpspreadsheet
composer.jsonとcomposer.lockが生成されます。
これでPhpSpreadsheetのインストールが完了されたので実際にExcelファイルの読み込み・書き出しが実装できるようになりました!
テンプレとなるExcelファイルを読み込み
require './vendor/autoload.php';
$reader = new PhpOffice\PhpSpreadsheet\Reader\Xlsx();
$spreadsheet = $reader->load('ファイル名を指定');
$sheet = $spreadsheet->getSheetByName('シート名');
上記でExcelファイルとシート名を指定すると読み込まれます。
新規Excelファイルに書き出し
$sheet->setCellValue('A1', $aaa);
$sheet->setCellValue('B2', $bbb);
$writer = new PhpOffice\PhpSpreadsheet\Writer\Xlsx($spreadsheet);
$writer->save('新規ファイル名を指定');
1、2行目で変数aaaと変数bbbがどのセル位置に出力したいかを指定してます。
3、4行目で新規Excelファイルに書き出しをしています。
他のサイトなどから調べながら今回実装したので、違うよ!といった部分があるかもしれません、、、
その際はご指摘くださいませm(_ _"m)