プログラミング言語や環境設定を中心としたパソコン関連の技術メモです。
主にシステム開発中に調べたことをメモしています。TIPS的な位置付けで、気が向いたときにちまちま更新していきます。
PHP、PHPExcelでExcel出力(テンプレート読み込み)
この記事は「PHP、PHPExcelでExcel出力(ファイル保存)」の内容を
理解していることを前提に書いていますので、
よく分からん方はそちらからご覧下さいm(__)m

ついでに「PHP、PHPExcelでExcel出力(ファイルダウンロード)」も
先に読んでいただけるとサンプルが理解しやすいと思います。

さて、「PHP、PHPExcelでExcel出力(ファイル保存)」と
PHP、PHPExcelでExcel出力(ファイルダウンロード)」で
PHPでのExcelファイルダウンロードの方法を書いた訳ですが、
一からExcelファイル作るのって面倒じゃないですか。
やっぱりあらかじめテンプレートファイルを用意しておいて
それをベースにちょっと値を埋めて出力したりしたいですよね。
と言う訳でサンプルφ(--)

  <?php
      //ライブラリ読み込み
      require_once './Classes/PHPExcel.php';
      require_once './Classes/PHPExcel/IOFactory.php';
  
//      // PHPExcelオブジェクトを生成する
//      $book = new PHPExcel();
  

      //テンプレート読み込み
      $filepath = "i.xls";
      $objReader = PHPExcel_IOFactory::createReader('Excel5');
      $book = $objReader->load($filepath);

  
      //シート設定
      $book->setActiveSheetIndex(0);
      $sheet = $book->getActiveSheet();
      $sheet->setTitle('sheet name');    //シート名指定
  
      // セルに値を入れる
      $sheet->setCellValue('A1', 'hoge');
      $sheet->setCellValue('A2', 'あいうえおかきくけこさしすせそ');
  
      // Excel2003形式で出力する
      header('Content-Type: application/vnd.ms-excel');
      header('Content-Disposition: attachment;filename="o.xls"');
      header('Cache-Control: max-age=0');
  
      $writer = PHPExcel_IOFactory::createWriter($book, "Excel5");
      $writer->save('php://output');
  ?>


えっ?やっぱり前の記事と殆ど同じじゃねーか!ですって(--?
わーはっは、ばれちゃーしょうがない(^◇^;
違うのは

      //テンプレート読み込み
      $filepath = "i.xls";
      $objReader = PHPExcel_IOFactory::createReader('Excel5');
      $book = $objReader->load($filepath);


の部分だけですね、ハイ。
今までは空のExcel用オブジェクトを作成していましたが、
代わりに既存のExcelを読み込んでいるのですよ。
ほんでもってそれに対して値を埋めたりしているだけです。
ちなみに

      $filepath = "i.xls";
      $objReader = PHPExcel_IOFactory::createReader('
Excel5');
      $book = $objReader->load($filepath);


はExcel97-2003形式(.xls)のファイルを読み込みです。
"Excel5"の部分がExcel97-2003形式(.xls)ねーって意味。
Excel2007形式(.xlsx)を読み込みたい場合はここを"Excel2007"に変えて
出力ファイルの拡張子を「.xlsx」に変えて

      $filepath = "i.xlsx";
      $objReader = PHPExcel_IOFactory::createReader('
Excel2007');

とかすればOKです。

あっ、しまった。
Excelの読み込みは次の記事で書こうと思ってたのに<( ̄◇ ̄;)>
スポンサーリンク
 
このエントリーをはてなブックマークに追加 

category:PHPExcel  thema:システム開発 - genre:コンピュータ  Posted by ササキマコト 

  関連記事