nobee

update: 507view

【PHP】Excelファイルに出力

【PHP】Excelファイルに出力

PHPで取得したデータをExcelファイルに書き出したい場合、csvへの書き出しと違って意外と手こずりましたっっっ

今回はその手順です。

PHPでExcelファイルに出力の仕方

csvは文字サイズや列幅やセルの高さ、レイアウトまでの情報は持ちません。
csvは値だけを持ちますが、Excelは文字サイズもフォントの種類もフォントの色、印刷範囲などの情報を持ちます。そのため、PHPで値を出力するのに、A4に収まるようレイアウト調整したExcelファイルの特定のセルに出力、が可能なんです!!

Excelファイルに書き出しするまでの流れ

PHPでExcelファイルの書き出しをするならPhpSpreadsheetのライブラリを使用します。

PhpSpreadsheetをインストールするには、まずcomposerのインストールが必要になります。

Composerをインストール

Composerの公式サイトからダウンロードします。

Composer公式サイト

赤枠のDownloadをクリック

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)

share

人気記事