2009-05-23
PHPExcel テンプレートを用いた書き込み&書式の設定
PHPExcel - OpenXML - Create Excel2007 documents in PHP - Spreadsheet engine - Home http://phpexcel.codeplex.com/
PHPExcelは、テンプレートとなるExcelファイルを用意しておいて、そこへデータを書き込むことも可能です。今回はそのサンプルです。ついでに罫線も出力してみます。
テンプレートの用意
せっかくなので、CSVではできないことをしてみます。セル結合をしたヘッダーにして罫線を付与、さらにウインドウ枠を固定します。
コード例
<?php //配列作成 $cd_list = array( array('(3rd Album)', '2009', '07', '08', 'AL'), array('ワンルーム・ディスコ', '2009', '03', '25', 'SG'), array('Dream Fighter', '2008', '11', '19', 'SG'), array('love the world', '2008', '07', '09', 'SG'), array('GAME', '2008', '04', '16', 'AL'), ); //セルの書式 (文字列、上下左右に罫線) $cell_style = array( 'numberformat' => array('code' => PHPExcel_Style_NumberFormat::FORMAT_TEXT), 'borders' => array( 'top' => array('style' => PHPExcel_Style_Border::BORDER_THIN), 'bottom' => array('style' => PHPExcel_Style_Border::BORDER_THIN), 'left' => array('style' => PHPExcel_Style_Border::BORDER_THIN), 'right' => array('style' => PHPExcel_Style_Border::BORDER_THIN) ) ); //ライブラリのインクルード set_include_path(get_include_path() . PATH_SEPARATOR . './PHPExcel/Classes/'); include 'PHPExcel.php'; include 'PHPExcel/IOFactory.php'; //テンプレートを読み込んでインスタンス化 $objReader = PHPExcel_IOFactory::createReader("Excel5"); $objPHPExcel = $objReader->load("./template.xls"); //データのセット $row = 3; //ヘッダの行数を除く foreach ($cd_list as $cd) { $col = 0; foreach ($cd as $value) { $objPHPExcel->getActiveSheet()->setCellValueExplicitByColumnAndRow($col, $row, $value, PHPExcel_Cell_DataType::TYPE_STRING); $objPHPExcel->getActiveSheet()->getStyleByColumnAndRow($col++, $row)->applyFromArray($cell_style); } $row++; } //Excel2003以前の形式でファイル出力 $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5'); $objWriter->save('./cd_list.xls');
出力結果
簡単な解説
- PHPExcel_Worksheet#setCellValueExplicitByColumnAndRow()で、セルにセットする値のデータ型を指定できる
- PHPExcel_Cell_DataType::TYPE_STRINGにすると、先頭の0もそのまま出力される
- PHPExcel_Style#applyFromArray()で、セルに連想配列から書式を適用することができる
- 'numberformat' => array('code' => PHPExcel_Style_NumberFormat::FORMAT_TEXT)にするメリット
関連記事:
トラックバック - http://d.hatena.ne.jp/deeeki/20090523/phpexceltemplate
リンク元
- 268 http://www.google.co.jp/search?sourceid=navclient&hl=ja&ie=UTF-8&rlz=1T4GGLL_jaJP304JP304&q=php excel+書き込み
- 141 http://www.google.co.jp/url?sa=t&rct=j&q=&esrc=s&source=web&cd=1&sqi=2&ved=0CDEQFjAA&url=http://d.hatena.ne.jp/deeeki/20090523/phpexceltemplate&ei=4pInT46THYfmmAWYltGwAw&usg=AFQjCNHvmhacXYBK3eB90zVbjjJndX7xhA&sig2=75k1fcD9-cHrb-S5Bc2D6Q
- 139 http://www.google.co.jp/url?sa=t&source=web&cd=1&ved=0CBkQFjAA&url=http://d.hatena.ne.jp/deeeki/20090523/phpexceltemplate&rct=j&q=phpexcel 書式設定&ei=usCvTbnAE4SevgOvvYmHBw&usg=AFQjCNHvmhacXYBK3eB90zVbjjJndX7xhA&
- 133 http://www.google.co.jp/search?hl=ja&client=firefox-a&rls=org.mozilla:ja:official&hs=nwn&num=100&q=PHPExcel.php+linux&btnG=検索&lr=lang_ja
- 133 http://www.google.co.jp/search?q=phpexcel+テンプレート&lr=lang_ja&ie=utf-8&oe=utf-8&aq=t&rls=org.mozilla:ja:official&client=firefox-a
- 124 http://nanchattese201004.blog2.fc2.com/blog-entry-23.html
- 107 http://www.google.co.jp/search?hl=ja&q=phpexcel+テンプレート&sourceid=navclient-ff&rlz=1B3GGGL_jaJP312JP313&ie=UTF-8
- 98 http://www.google.co.jp/search?hl=ja&q=phpexcel+書式&btnG=Google+検索&lr=&aq=0r&oq=phpexcel+しょしk
- 89 http://www.google.co.jp/search?hl=ja&source=hp&q=phpexcel+テンプレート&lr=&aq=0r&oq=phpexcel+てんぷ
- 84 http://www.google.co.jp/url?sa=t&rct=j&q=phpexcel 書式&source=web&cd=1&ved=0CCYQFjAA&url=http://d.hatena.ne.jp/deeeki/20090523/phpexceltemplate&ei=Tz6ETpi-GOeMmQX3zYEG&usg=AFQjCNHvmhacXYBK3eB90zVbjjJndX7xhA&sig2=wIkKdYZ9c9fKC_u





