PHPExcel
PHPからエクセルファイルを編集可能にする。PHPで書かれたライブラリ。LGPL。
Microsoft Officeを扱う系のライブラリはよくあるが、PHPの場合はだいたいコレが鉄板なようだ。
できること
読み取り、新規作成、編集可能。万能ではないがそれなりにいろいろできて助かる。
文字色セル色変更・行列挿入・罫線などの基本操作もできるし、関数を使用したセルを結果・式のどちらで取得するか選択できる。 ただしグラフとかスマートアートとかは扱えないため、それらが入ったファイルを開いて再保存すると、消えちゃう点に注意。
また、メモリ使用量は高め。
インストール
composer require phpoffice/phpexcel
依存
- php_xml
- php_zip(2007以降のファイルを編集する場合)
- php_gb2(列幅の自動調整を行う場合)
使い方サンプル
csvをxlsxに変換
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
<?php require_once __DIR__ . '/vendor/autoload.php' ; // 読み込みリーダの設定 $csvReader = PHPExcel_IOFactory::createReader( 'CSV' ); $csvReader ->setDelimiter( ',' ); // デリミタを変更可能 $csvReader ->setInputEncoding( 'UTF-8' ); // 読み込み $excel = $csvReader ->load( 'test.csv' ); // そのまま書き込み $xlsxWriter = PHPExcel_IOFactory::createWriter( $excel , 'Excel2007' ); $xlsxWriter ->save( 'test.xlsx' ); |
読み込みファイルタイプに指定できるのは、
- Excel2007: 拡張子が.xlsxの、2007以降のエクセル
- Excel5: 拡張子が.xlsの、以前のエクセル
- Excel2003XML
- OOCalc: Open OfficeのCalc
- SYLK: Microsoft Multiplan Symbolic Link Interchangeファイル
- Gnumeric: Gnome Gnumeric spreadsheetファイル
- CSV
書き込みは、Excel2007, Excel5, CSV, HTML, PDF。