$file = fopen('test.csv', 'r');
$result = fgetcsv($file);
みたいなことをやると、csvファイルの中身を配列形式で取って来ることができますが、同様のことがxlsファイル(Excelのファイル)でもできないのかなと思っていたら、それを可能にするライブラリが見つかったので、今回はPHP-ExcelRaderというのを使ってみました。
ダウンロードしてファイルを解凍したら、Excelというフォルダの中にこんな感じ(↓)のファイルが入っていると思いますので、それを適当なディレクトリに移します。まあ、Excelフォルダごと移動しちゃえばいいでしょう。
oleread.inc
reader.php
場合によっては、reader.phpの中身をちょこっと書き換える必要があります。だいたい30行目あたりかな……?
require_once 'Spreadsheet/Excel/Reader/OLERead.php';
↓
require_once 'Excel/oleread.inc';
使い方は簡単です。巻きで説明すると、reader.phpを読み込んでクラスをnewしてエンコードを指定してデータをreadすればOK。お手軽ですね。チャーハンよりもお手軽だ。
require_once 'Excel/reader.php';
$excel = new Spreadsheet_Excel_Reader();
$excel->setUTFEncoder('mb');
$excel->setOutputEncoding('UTF-8');
$excel->read('test.xls');
$data = $excel->sheets[0];
ソースで書くとこんなんです。これで$dataにExcelファイルの中身がシート単位で配列に入っています。ファイルの中にシートが2つあるなら
$excel->sheets[0] => 1番目のシートの中身
$excel->sheets[1] => 2番目のシートの中身
ってな具合になります。
LIGはWebサイト制作を支援しています。ご興味のある方は事業ぺージをぜひご覧ください。