研究ノート

PHPExcel による Excel ファイルの読み込み岩田
1．はじめに員典 （愛知大学経営学部）

PHP は 動 的 に HTML デ ー タ を 生 成 す る
こ と に よ っ て， 動 的 な Web ペ ー ジ を 実

本学の新入生向けの授業である情報現することを主な目的としている。PHP

リ テ ラ シ ー 入 門・ 応 用 で は， 学 生 がといった場合にはプログラミング言語かWord や Excel の 多 数 の 問 題 に 取 り 組 め

そ の 言 語 プ ロ セ ッ サ を 指 す。PHP は ス

るように自動採点システムを独自に構

クリプト言語であり，サーバサイドで動築・ 運 用 し て い る 1），2）。 論 文 1） に お い

作するアプリケーションの開発に用いて は Excel の 採 点 に は Perl の ラ イ ブ ラら れ る。 通 常 は，Web サ ー バ 上 で 動 作3）をし， サ ー バ 上 で PHP ス ク リ プ ト の 文 書利用していた。このライブラリは Officeが要求されるたびに，そのスクリプトが2003 ま で 用 い ら れ て い た バ イ ナ リ 形 式実行される。そして，その結果をウェブの Excel ファイルを読み込むための物でブラウザに対して送信することで動的なあ る。Office 2007 以 降 は フ ァ イ ル 形 式

Web ページを実現している。C 言語に似リ で あ る Spreadsheet::ParseExcel4）に変更されたた

た平易な文法のため幅広く用いられていめ， 論 文 2） で は PHP の ラ イ ブ ラ リ で ある。また，本稿で取り上げる PHPExcel のる PHPExcel 5） を用いることになった a 。

ような多くのフレームワークやライブラ

そこで，本稿では PHPExcel を利用した

リが存在し，様々な Web アプリケーショ

Excel ファイルの読み込みについて解説

ンの開発が PHP によって容易になる。

が Office Open XMLする。
2.1

PHP のインストール

2．PHP とは
PHPExcel を利用するには，PHP をイ
正 式 な 名 称 は PHP: Hypertext

ンストールする必要がある。

Preprocessor 6）であり，通常 PHP と省略される。PHP の部分は“Personal Home

2.1.1

Windows へのインストール

Page”に由来していると言われている。
aOffice Open XML に対応している Perl のラ
イブラリとしては Spreadsheet-XLSX がある

愛知大学情報メディアセンター

Window 版のバイナリを参考文献 7） で示 し た URL か ら ダ ウ ン ロ ー ド す る こ と－ 73 －vol.26, No.1, 2016が出来る。以下のように大きく分けて 4る。2015 年 10 月 の 時 点 で は Mac OS X

種類存在する zip ファイルから適切な物

10.11.1（El Capitan）には PHP 5.5.29 がをダウンロードする。

インストールされている。

◦ 32bit（x86）Non Thread Safe

その他の Unix システムでは，OS 毎の◦ 32bit（x86）Thread Safe

パッケージマネージャーを利用するか◦ 64bit（x64）Non Thread Safe

ソースファイルをダウンロードしてイン◦ 64bit（x64）Thread Safeストールすることになる。詳細は参考文

ビ ッ ト（bit） 数 は 環 境 に あ わ せ て 選献6）の Documentation に書かれている。

択 す る。 そ し て，Non Thread Safe かまた，サーバサイドで利用する場合にThread Safe か は Web サ ー バ の 種 類 とは Apache 等 の Web サ ー バ の 設 定 も 必

Version に よ る。Apache2 以 降 な ら ば要であり，その際には同じく参考文献 6）

Thread Safe を 利 用 し，IIS や Apache1に設定方法が記載されている。

ならば Non Thread Safe を利用する。ただし，本稿で説明する PHPExcel を利用

3．PHPExcel の利用方法

するだけならビット数があっていればよ
3.1

い。

PHPExcel のインストール

ダウンロードした zip ファイルを好みの場所に展開する。展開したフォルダに

PHPExcel の最新版を参考文献 5） に示存在する php.exe をコマンドプロンプト

し た URL か ら DOWNLOADS を 選 択 し等で実行できれば，そこにパスを通すこダウンロードする。本稿執筆時には 1.8.0とでインストールは完了する。尚，環境（2014/3/2 リ リ ー ス ） が 最 新 版 で あ る。

によっては実行に「Visual Studio 2012

マニュアルが必要ない場合は Code only

更 新 プ ロ グ ラ ム 4 の Visual C++ 再 頒 布可能パッケージ」などのライブラリが必要となることがある。
2.1.2

その他の OS へのインストール

Mac OS X 10.0.0 以降では標準でインス ト ー ル さ れ て い る の で， 新 し い バ ー
ジョンを利用するのでなければターミナ
ルなどからすぐに利用することが出来愛知大学情報メディアセンター

－ 74 －

図1

PHPExcel のダウンロード
vol.26, No.1, 2016

をダウンロードするとファイルサイズが3.2

Excel ファイルの読み込み小さく，時間がかからずに済む（図 1）。
ダウンロードしたファイルは zip で圧

本節では Excel を読み込むためのプロ縮 さ れ て い る た め 展 開 す る。 展 開 す る

グラムについて説明をする。全てのプロと，Code only の 場 合 は デ ィ レ ク ト リ

グラムを一カ所に記載すると長いため分Classes と 3 つ の フ ァ イ ル が 含 ま れ て い割して説明する。尚，プログラムは全てる。PHPExcel の実行に必要なファイル

タグ“<?php”，”?>”に囲まれているもは Classes 内のファイルのみなので，プのとする。

ログラムを作成するディレクトリにこのディレクトリを移動する。ここでは，

3.2.1

読み込みの準備と読み込み

testPHPExcel と 名 付 け た デ ィ レ ク ト リで作業を行う（図 2）。

図 3 に Excel フ ァ イ ル を 読 み 込 む た めの基本的な設定と読み込み方法を示す。
1 行目はライブラリを読み込むためのパスの設定を行う。Web アプリケーションとしてサーバサイドで利用する場合も，同様の設定を利用する。
2 行 目 は Time Zone の 設 定 で あ り，PHP の設定状況によっては必要ない。
3～4 行目が利用するライブラリの読み込みとなる。1 行目で設定したパスに対しての相対的な参照となる。
5 行 目 で フ ァ イ ル の 形 式 を 指 定 し て，

図2

PHPExcel のインストール

図3
愛知大学情報メディアセンター

ファイルを読み込むためのインスタンス

パスの設定と Excel ファイルの読み込み－ 75 －

vol.26, No.1, 2016

図4

タイトルとシート名の取得

図5

セル内のデータの取得を取り出す。

10 行目ではシートの枚数を取得し，116 行目はグラフデータを読み出すことを指定している。

行目から 15 行目までの”for”文によって全てのシート名の取得・表示を行って7 行目でファイル”readTest.xlsx”をいる。

読み込む。
3.2.3
3.2.2

セル内のデータの取得

プロパティとシートの確認
図 4 までの操作でシートの情報を取得

Excel ファイルのプロパティとシートできる。次に指定したシートにおいてセ数，シート名の確認方法は図 4 の通りでル内のデータを取得する方法を図 5 に示ある。

す。

8 行目でプロパティ内のタイトルを取出し，9 行目で表示している。
愛知大学情報メディアセンター

16 行目で情報を取得したいシートを指定している。シートの番号は先頭から 0，－ 76 －

vol.26, No.1, 2016

図6

グラフ情報の取得

1，2，…となる。17 行目でそのシートを取り出す。「標準」の場合は“General”取り出している。

が取得される。

18 行目ではシート内のデータが入っているセルの一覧を取得している。

24 行目で各セルに対する結果を出力している。

19 行 目 か ら 25 行 目 で 各 セ ル に 対 し て
3.2.4

データの取出しを行っている。

グラフ情報の取得

21 行 目 で セ ル に 入 力 さ れ て い る 値・式 な ど を 取 り 出 し て い る。22 行 目 で は最後にグラフに関する情報をどのようセルに入力された式を計算した結果が取に取得するかについて説明する（図 6）。

得できる。例えば，セル A5 に”＝ sum

26 行目でグラフデータの集合を取得し（A2:A4）”と入力されていた場合に，21行目では“＝ sum（A2:A4）”が取り出され，22 行目ではセル A2 から A4 の値を合計した結果が得られる。

28 行 目 か ら 45 行 目 に か け て 各 グ ラ フについて情報を取り出している。
29 行目でグラフを指定し，30 行目でグ

23 行目ではセルに表示する際の書式を愛知大学情報メディアセンターている。27 行目はグラフの数を得る。

ラフの種類を出力している。グラフの種－ 77 －vol.26, No.1, 2016

類は以下のように出力される。
◦棒グラフ，横棒グラフ：barChart◦折れ線グラフ：lineChart◦円グラフ：pieChart◦面グラフ：areaChart◦散布図：scatterChart
31 行 目 か ら 44 行 目 で は グ ラ フ 作 成 に使われているデータの場所と値を取得している。31 行目でデータの参照範囲を全て取出し，32 行目でそれがいくつあるかを計測している。
33 行 目 か ら 42 行 目 に か け て 各 参 照 に図7対して調べている。34 行目でどの範囲の対象の Excel ファイルデータを参照しているか出力する。36 行目 か ら 43 行 目 に か け て そ の 参 照 に よ る
値を取り出している。具体的には以下のような情報を取り出すことになる。
34 行目：'Sheet1'!$A$2:$A$4
43 行目：2，8，43.3

実行例
図8実行例

図 7 で 示 し た Excel フ ァ イ ル に 対 し て
図 3～図 6 のプログラムを実行する。セルタイトルが出力されている。次に現在参の A2，A3，A4 には数値データが入って照しているシート名が表示される。そのいる。A5 には“＝ SUM（A2:A4）”が入後，各セル内の情報が取り出され，最後力されており，この 3 つのセルの合計値の 3 行はグラフに関する情報となっていが表示される。また，折れ線グラフもこる。セル A5 の情報については，前述のの 3 つの値に対して作成をした。プロパように最初に入力された式が得られ，そティ内のタイトルは「PHPExcel テスト」の次に計算結果が得られる。このようにとしている。実行例を図 8 に示す。

PHPExcel を 使 う こ と で Excel フ ァ イ ル

実行例において最初にプロパティ内の愛知大学情報メディアセンター

からいろいろな情報を抜き出すことが出－ 78 －vol.26, No.1, 2016

来る。

3）SpreadSheet-ParseExcel,
http://search.cpan.org/dist/

4．まとめ

Spreadsheet-ParseExcel/lib/Spreadsheet/ParseExcel.pm

本 稿 で は PHPExcel の 基 本 的 な 使 い4）Standard ECMA-376 Office Open XML方の説明をした。PHP のインストール，

File Formats,

PHPExcel のインストールの仕方も示し

http://www.ecma-international.org/

た。そして，Excel ファイルを読み込む

publications/standards/Ecma-376.htm

ためのサンプルプログラムを記載し，そ（2006-2012）．の実行例を示した。

5）PHPExcel,

PHPExcel は Excel フ ァ イ ル を 読 み 込
むだけでなく，新規作成・編集をプログ
ラムから行うことが出来る。次稿ではその方法について説明をしたい。また，今回はコマンドラインでの実行方法についhttps://phpexcel.codeplex.com
6）PHP,
http://php.net
7）PHP For Windows,
http://windows.php.net/downloadて示したが，Web アプリケーションとしてサーバサイドで実行する場合の設定等についても述べていきたい。
参考文献
1）岩田員典，功刀由紀子，齋藤毅，谷口正明，長谷部勝也，松井吉光，古川邦之：Excel,
Word 自 動 採 点 シ ス テ ム HITs の 構 築 と 運用，愛知大学

情報メディアセンター紀要「COM」，Vol.20，No.1 第 35 号，pp.11-23（2010）．
2）岩田員典，松井吉光，長谷部勝也，谷口正明，池森均，梅垣敦紀，齋藤毅，澤田貴行，土橋喜，中尾浩，西本寛，古川 邦之，
毛利元昭：情報リテラシーのための Word，Excel 自動採点システムの構築と運用，教育改革 ICT 戦略大会

愛知大学情報メディアセンター

pp.294-295（2013）．

－ 79 －

vol.26, No.1, 2016