読者です 読者をやめる 読者になる 読者になる

なんちゃってウェブ系エンジニアの備忘録

某IT企業で働くなんちゃってウェブ系エンジニアが技術やデザインなど役に立ちそうなものなどを備忘録として載せていきます

PHPExcelを使ってExcelの中身を取得する

Excelの中身をサーバサイド側(PHP)を通して取得したいというちょっとした
仕事がありましたので、PHPExcel導入からExcel中身の取得までの流れを
簡単にまとめておきます。

Pearでは提供されていないみたいなので、
PHPExcel公式サイトから最新版のPHPExcelをダウンロードします。
最新版のバージョンは1.79ですね(2013.11.26時点)

http://phpexcel.codeplex.com/

ダウンロードしたPHPExcelを解凍し、その中にある「Classes」ディレクトリを
サーバのディレクトリ構成にあわせて適宜配置します。

XAMPPの場合 デフォルトでは「\php\PEAR」がインクルード可能なディレクトリになっているかと思います。

<?php
//ライブラリのインクルード
set_include_path('XXXX\xampp\php\PEAR\Classes');
include 'PHPExcel.php';
include 'PHPExcel/IOFactory.php'

// xlsファイルを読み込む
$obj = PHPExcel_IOFactory::load("sample.xls");

// 読み込みたいシートを設定する
$sheet = $obj->setActiveSheetIndex(0);

// 読み込みたいシート名を参照したい場合は以下のように設定
//$sheet = $obj->setActiveSheetIndexByName("シート名");

// 行イテレータ取得
$sheetData = array();
foreach ($sheet->getRowIterator() as $row) {
	$tmp = array();
	// 列イテレータ取得
	foreach ($row->getCellIterator() as $cell) {
		// セルの値取得
			$tmp[] = $cell->getValue();
	}
	$sheetData[] = $tmp;
}
?>

とこんな感じで、Excelの中身を取得することができます。
もちろんExcelへ書き込むこともできちゃいます。
帳票を作るとか様々な用途が使えそうですね。