※今では非推奨となったが、古いPHP環境で動かすならPHPExcelを使うしかない。
新しい環境ならPHPOffice/PhpSpreadsheetを使ってね。
準備
- PHPExcelのコードをgithubからzipでダウンロード
- 解凍してClassesフォルダ内にあるPHPExcelフォルダとPHPExcel.phpをサーバー上にコピー。参照できる位置におくこと。
使い方
<?php $filepath = "/home/saito/File/sample.xls"; //Classesディレクトリを配置したパスを指定 $path = "Classes/"; require_once($path . "PHPExcel.php"); require_once($path . "PHPExcel/IOFactory.php"); //拡張子がxlsx対応 拡張子によって読み込みの仕方を変える preg_match('/[^.]+$/', $filepath, $tmp); $extension = $tmp[0]; //xls if($extension == "xls"){ $xls = PHPExcel_IOFactory::load($filepath); //xlsx }else{ $xls = PHPExcel_IOFactory::createReader('Excel2007')->load($filepath); } //ファイル内に複数のシートがある時対応 foreach ($xls->getSheetNames() as $i => $sheetName) { //下記二行で$i番目のシートを開く $xls->setActiveSheetIndex($i); $sheet = $xls->getActiveSheet(); //各行を取得 $rには行番号が格納される foreach ($sheet->getRowIterator() as $r => $row) { //セルを取得 $cには列の記号(AとかB)が格納される foreach ($row->getCellIterator() as $c => $cell) { //セルの番号とセル内の値を出力 echo $c . $r . ":" . $cell->getCalculatedValue() . "<br>"; } } }
参照するシートが決まってるなら
for($i=0;$i<4;$i++){ // シートを取得 $sheet = $excel->getSheet($i); .... }
というやり方もあり。