PHPExcel
PHPからエクセルファイルを編集可能にする。PHPで書かれたライブラリ。LGPL。
Microsoft Officeを扱う系のライブラリはよくあるが、PHPの場合はだいたいコレが鉄板なようだ。
できること
読み取り、新規作成、編集可能。万能ではないがそれなりにいろいろできて助かる。
文字色セル色変更・行列挿入・罫線などの基本操作もできるし、関数を使用したセルを結果・式のどちらで取得するか選択できる。 ただしグラフとかスマートアートとかは扱えないため、それらが入ったファイルを開いて再保存すると、消えちゃう点に注意。
また、メモリ使用量は高め。
インストール
composer require phpoffice/phpexcel
依存
- php_xml
- php_zip(2007以降のファイルを編集する場合)
- php_gb2(列幅の自動調整を行う場合)
使い方サンプル
csvをxlsxに変換
<?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。