Webサイト発注虎の巻ダウンロード
Webサイト発注虎の巻ダウンロード

PHPでExcelファイルの中身を取得する

まっちー
$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番目のシートの中身

ってな具合になります。

3 0 0 0