Excelファイルの読み込み

  • 投稿日:
  • by
  • カテゴリ:
  • ハッシュタグ:

ファイル入力の化粧直しに余計な時間を取られましたが、本当はExcelのファイルをPHPに読み込ませて、データをMySQLに登録する機能を実装していました。

「PHP Excel 読み込み」でググれば、事例はたくさん出てきます。 だいたい以下の4つがよく使われているようです。

1. PHP-ExcelReader(旧名Spreadsheet_Excel_Reader)
2. php-excel-reader
3. Excel_Peruser
4. PHPExcel

このうち4番は、出力もできるみたいですが、今回は読み込みだけ出来ればいいのでパス。
3番は掲示板に会員登録しないとダウンロードできない(?)みたいですが、Gmail じゃダメだということなのでサヨウナラ~。

2番はダウンロードして動かしてみましたが、PHPのエラーメッセージが出るので止めました(読み込み自体はできてました)。 サンプルファイルをサーバーに配置しただけで、特に変わったことはしてないんですが。 XAMPPと相性悪いんかな?
でも見た目の再現度はかなり高かったので、読み込んだファイルをそのまま表示したい時には良いのではないでしょうか。 今回はDBに登録するだけなので、見た目は関係ありません。

ということで、1番の PHP-ExcelReader を使用しました。


読み込んだファイル(Excel 2003形式)は、こんなやつです(OOo Calc で開いています)。

pl01.jpg

動作確認として、読み込んだファイルから各セルの内容をテーブルに書き出してみたら、こんな風になりました。

pl02.jpg

列と行の見出しは、自動で書いてくれるわけではなくて、そういうテーブルを組んだ結果です。
表示されたままの状態で、概ね問題なくデータを取得出来ています。 あとは、SQL文を組んでデータをDBに登録すればOKですね。

ちなみにシート枚数は count($excel->sheets) で取れるようです($excel = new Spreadsheet_Excel_Reader(); の場合)。
シート名は $excel->boundsheets[(シート番号)]['name'] で取れます。