※今では非推奨となったが、古い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);
....
}というやり方もあり。