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

さて、「PHP、PHPExcelでExcel出力(ファイル保存)」で
PHPでのExcelファイル出力の方法を書いた訳ですが、
PHPってことは大部分がWebシステムじゃないですか。
ぶっちゃけどっかにファイル保存する機会より
ダウンロードさせる方が圧倒的に多いですよね(--?
と言う訳でExcel出力&ダウンロードのサンプルφ(--)

  <?php
      //ライブラリ読み込み
      require_once './Classes/PHPExcel.php';
      require_once './Classes/PHPExcel/IOFactory.php';
  
      // PHPExcelオブジェクトを生成する
      $book = new PHPExcel();
  
      //シート設定
      $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');

  ?>

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

      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');


の部分だけですね、ハイ。
要はHTTPヘッダで「Excel送りつけるぜー!」って宣言して
Excelの内容を出力バッファへ書き込んでいるだけです。
内容の流し込み先が違うだけ。
ちなみに「php://output」は

書き込み専用のストリームで、 print() および echo() と同じ方法での
出力バッファへの書き込みを許可します

だそーです。
PHPマニュアルより。
スポンサーリンク
 
このエントリーをはてなブックマークに追加 

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

  関連記事