PHP-ExcelReader を CakePHP1.2 で使用する。

Written by aoki on 2008 年 11 月 28 日 – 11:21 AM -

Excelに入力したデータをファイルアップロードにより取り出して加工したいケースがありますよね。CakePHP1.2 をベースに PHP-ExcelReader を利用した方法をメモしました。

PHP-ExcelReader を以下のURLからダウンロードします。
http://sourceforge.net/projects/phpexcelreader/

解凍し、/phpExcelReader/Excel フォルダ内にある
以下の二つのファイルを app/vendors/phpExcelReader/
にアップロードする。

reader.php
oleread.inc

reader.php の31行目は、そのままではエラーになるので
oleread.inc が読み込まれるように変更する。

変更前
require_once 'Spreadsheet/Excel/Reader/OLERead.php';

変更後
require_once 'phpExcelReader/oleread.inc';

コントローラからの呼び出しは以下の様に行った。

PHP:
  1. <?php
  2.  
  3. ini_set('include_path', get_include_path() . PATH_SEPARATOR . APP . 'vendors');
  4. App::import('Vendor', "phpExcelReader", array('file'=>'phpExcelReader/reader.php'));
  5.  
  6.  
  7. class FogesController extends AppController {
  8.  
  9.     var $name = 'Foges';
  10.     var $helpers = array('Html', 'Form', 'Ajax', 'Javascript', 'Xml');
  11.     var $uses =array("Foge",    );
  12.  
  13.     function upload(){
  14.        
  15.             $data = new Spreadsheet_Excel_Reader();
  16.             $data->setOutputEncoding('UTF-8');
  17.             $data->read("fogefoge.xls");
  18.             
  19.             //各シート(5枚目まで)の一列目と2列目のデータを全て表示するテスト。
  20.             for ($j = 0; $j <5; $j++) {
  21.                 for ($i = 1; $i <= $data->sheets[$j]['numRows']; $i++) {
  22.                     echo $data->sheets[$j]['cells'][$i][1];
  23.                     echo $data->sheets[$j]['cells'][$i][2];
  24.                         echo "<hr />";
  25.                 }
  26.             }
  27.     }
  28. }
  29. ?>


Tags: ,
PHPカテゴリー | コメントはまだありません »