Deep Insider の Tutor コーナー
>>  Deep Insider は本サイトからスピンオフした姉妹サイトです。よろしく! 
書籍転載:PHPライブラリ&サンプル実践活用[厳選100]

書籍転載:PHPライブラリ&サンプル実践活用[厳選100]

Excelファイルを作成/操作する(PHPExcel)

2014年9月22日

Excelファイルを作成/操作できるライブラリ「PHPExcel」の基本的な使い方を説明する。書籍転載の17本目(書籍内の番号は「36」)。

WINGSプロジェクト 髙江 賢
  • このエントリーをはてなブックマークに追加

書籍転載について

 本コーナーは、技術評論社発行の書籍『PHPライブラリ&サンプル実践活用[厳選100]』の中から、特にBuild Insiderの読者に有用だと考えられる項目を編集部が選び、同社の許可を得て転載したものです。

 

 『PHPライブラリ&サンプル実践活用[厳選100]』の詳細や購入は技術評論社のサイト目次ページをご覧ください。

ご注意

 本記事は、書籍の内容を改変することなく、そのまま転載したものです。このため用字用語の統一ルールなどはBuild Insiderのそれとは一致しません。あらかじめご了承ください。

 PHPExcelは、PHPでMicrosoft社のExcelファイルを作成/操作するライブラリです。ライブラリの実行環境には、Excelがインストールされている必要はありません。このライブラリのみで、Excelファイルの作成/操作が可能です。

インストール

 PHPExcelのインストールは、配布サイトから圧縮ファイル(執筆時点では、PHPExcel_1.8.0_doc.zip)をダウンロードし、解凍後、必要なファイルをコピーするだけです。

 ZIPファイルを解凍した中に、Classesというフォルダがありますので、それをそのまま必要な環境にコピーします。

基本のサンプル

 リスト36-1は、新規にExcelファイルを作成し、文字列を書き込んだ後に保存するものです。図36-1のようなExcelファイルとなります。

PHP
<?php
require_once 'Classes/PHPExcel.php';

// 1PHPExcelオブジェクトの作成
$obj = new PHPExcel();

// 2プロパティ情報の編集
$obj->getProperties()->setCreator("Wings")->setTitle("サンプル");

// 3シートを指定して、セルに書き込む
$obj->setActiveSheetIndex(0)
  ->setCellValue('A1', 'Hello')
  ->setCellValue('B2', 'world!')
  ->setCellValue('C1', 'Hello')
  ->setCellValue('D2', 'world!')
  ->setCellValue('A5', '日本語の文字列');

// 4アクティブシート指定
$obj->getActiveSheet()->setCellValue('A8',"Hello\nWorld");

// 5行を指定して、高さを変更する
$obj->getActiveSheet()->getRowDimension(8)->setRowHeight(-1);

// 6自動改行
$obj->getActiveSheet()->getStyle('A8')->getAlignment()->setWrapText(true);

// 7Excel2007形式で保存する
$writer = PHPExcel_IOFactory::createWriter($obj, 'Excel2007');
$writer->save('sample.xlsx');
リスト36-1 sample_excel.php
図36-1 生成されたExcelファイル

図36-1 生成されたExcelファイル

 まずは、PHPExcelオブジェクトを作成します(1)。このオブジェクトを通して、各操作を行います。

 Excelファイルのプロパティは、getPropertiesメソッドで取得可能で、情報を書き込むことも可能です(2)。

 セルの操作には、いくつかの方法があります。

 3ではシートを番号で指定して、セルに文字列を書き込んでいます。setCellValueメソッドで、セルに書き込むことができます。日本語も利用可能ですが、文字コードをUTF-8にする必要があります。

 getActiveSheetメソッドで、現在のシートを指定します(4)。getRowDimensionメソッドでは、行全体を指定することができ、setRowHeightメソッドで、高さ(単位はポイント)を指定しています(5)。setRowHeightに、-1を指定した場合は、高さが自動設定されます。

 セルの書式を編集することもできます(6)。

 なおPHPExcelでは、セルに改行コードを書き込んだだけでは改行しないので、明示的に、setWrapTextメソッドを実行します。

 7では、ここで成したExcelファイルを、Excel 2007形式(拡張子が.xlsx)で保存しています。createWriterメソッドの第2引数を、Excel5とすると、Excel97-2003形式(.xls)で保存できます。

※以下では、本稿の前後を合わせて5回分(第14回~第18回)のみ表示しています。
 連載の全タイトルを参照するには、[この記事の連載 INDEX]を参照してください。

書籍転載:PHPライブラリ&サンプル実践活用[厳選100]
14. markdown形式のテキストをHTMLに変換する(PHP Markdown)

Markdown形式のファイルをHTML形式のコードに変換するためのライブラリ「PHP Markdown」の基本的な使い方を説明する。書籍転載の14本目(書籍内の番号は「38」)。

書籍転載:PHPライブラリ&サンプル実践活用[厳選100]
15. さまざまなグラフを動的に生成する(準備編)(JpGraph)

グラフ作成ライブラリ「JpGraph」を利用するまでの準備手順を説明する。書籍転載の15本目(書籍内の番号は「24」)。

書籍転載:PHPライブラリ&サンプル実践活用[厳選100]
16. さまざまなグラフを動的に生成する(実行編)(JpGraph)

グラフ作成ライブラリJpGraphを使って、棒グラフ、折れ線グラフ、レーダーチャートを作成する方法を説明する。書籍転載の16本目(書籍内の番号は「25」)。

書籍転載:PHPライブラリ&サンプル実践活用[厳選100]
17. 【現在、表示中】≫ Excelファイルを作成/操作する(PHPExcel)

Excelファイルを作成/操作できるライブラリ「PHPExcel」の基本的な使い方を説明する。書籍転載の17本目(書籍内の番号は「36」)。

書籍転載:PHPライブラリ&サンプル実践活用[厳選100]
18. ExcelファイルをHTMLとして表示する(php-excel-reader)

Excelファイルを読み込んで、HTMLのテーブルとして出力するライブラリ「php-excel-reader」の基本的な使い方を説明する。書籍転載の18本目(書籍内の番号は「67」)。

サイトからのお知らせ

Twitterでつぶやこう!