PHPExcelを使ってExcelシートに画像を貼りつけてみた

Facebooktwittergoogle_plus

ウェブサーバ上で、アップロードされた画像をMS Excelに張り付け、そのファイルをダウンロードするシステムの見積依頼が来たので、下調べにプロトタイプを作ってみました。
PHPExcelを使えば出来そうなんですが、なかなかネット上に情報がなく、仕方ないので、PHPExcelに添付のドキュメントを読むことに。意外と丁寧に書かれてあって、わかりにくそうな機能にはちゃんとサンプルコードも添えられており、あっさり動いてくれました。
これはその時の備忘録。
【準備するもの】

  • PHPExcel(http://phpexcel.codeplex.com/からダウンロード)
  • PHP5.2以上
  • php_zip (.xlsx, .odsファイルを扱わない場合は不要)
  • php_xml
  • php_gd2

*サーバはアイルの+Infinito Plusにしました。何も追加することなく動きます。
【手順】

  1. PHPExcelオブジェクトを生成する。このオブジェクトがひとつのExcelファイルになるという概念です。この中にワークシート、セル、データ、計算式、画像オブジェクトが含まれ、すべてはメモリ上で操作されるということです。
  2. 既存のExcelファイルをオープンする。
  3. 画像を扱うオブジェクトを生成する。
  4. 画像オブジェクトにサーバ上に置いてある画像をロードする。
  5. 画像オブジェクトをExcelオブジェクトのワークシートにセットする。
  6. Excelファイルの書き出し。

具体的にはこんな感じになります。


$objReader = PHPExcel_IOFactory::createReader(‘Excel2007’);


$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, ‘Excel2007’);
のExcel2007をExcel5にし、入出力ファイルの拡張子を.xlsにすればOffice2000のExcelファイルも扱えました。
以上です。