弊社のお客様はほぼ不動産業者様ということで、
時々物件データの図面をエクセルで出力したいという要望があります。
そんな場合に使用するのがPHPExcelです。
http://phpexcel.codeplex.com/
からZIPファイルをダウンロードして解凍すると解答ディレクトリの中に「Classes」というディレクトリがあるので、
それを任意の場所に設定します。
で、
まずはPHPExcelのライブラリを読み込んでやります。
require_once "Classes/PHPExcel.php";
require_once "Classes/PHPExcel/IOFactory.php";
※パスは各自の環境に合わせて変えてください。
次に、オブジェクトを生成して、シートの設定を行います
//オブジェクトを生成
$excel = new PHPExcel();
//シートの設定
$excel->setActiveSheetIndex(0);
$sheet = $excel->getActiveSheet();
//シート名を設定
$sheet->setTitle("sample");
ここまできたら、
次は試しに「A1」セルに値を入れて、エクセルを出力します。
//A1セルに値を設定する
$sheet->setCellValue("A1", "input here");
//出力(形式:Excel2007)
$writer = PHPExcel_IOFactory::createWriter($excel, "Excel2007");
$writer->save("data/sample.xlsx");
因みに、
Fatal error: Class 'XMLWriter' not found in /var/www/html/Classes/PHPExcel/Shared/XMLWriter.php on line 44
みたいないエラーが出ることがあります。
ターミナルなどに接続して、
# yum install php-xml
というコマンドを実行して「php-xml」をインストールしてやれば、
解決出来るようです。
もしくは、
別の形式(Excel5)でエクセルを出力する方法も有ります。
※コードは以下の様になります。
require_once "Classes/PHPExcel.php";
require_once "Classes/PHPExcel/IOFactory.php";
//※パスは各自の環境に合わせて変えてください。
//オブジェクトを生成
$excel = new PHPExcel();
//シートの設定
$excel->setActiveSheetIndex(0);
$sheet = $excel->getActiveSheet();
//シート名を設定
$sheet->setTitle("sample");
//A1セルに値を設定する
$sheet->setCellValue("A1", "input here");
//出力(形式:Excel5)
$writer = PHPExcel_IOFactory::createWriter($excel, "Excel5");
$writer->save("data/sample.xls");
因みに、
通常はサーバー上に出力するよりも、
ダウンロード用のダイアログ画面を立ち上げて
PCのローカルに保存することの方が多いと思います。
その方法は以下に記載しています。
[ エクセルをダウンロード ]
また、今回の様な図面を出力する場合、
雛型となるエクセルファイルが存在することが多いので、
そのような場合には、
エクセルのテンプレートファイルを作成して読み込んでやれば、
便利です。
その方法は以下のブログに記載しています。
[ テンプレートを使用してエクセルを出力 ]
この記事へのコメントはありません。