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。

