PHPExcelにてcsv出力への対応
現在、データベースの値をPHPExcelにてxls形式にて出力する
システムを組んでおります。
これを.csv形式にてダウンロードさせたいです。
下記は、現状のExcel形式ダウンロードのソースです。
こちらをcsv形式にするべく、header部分をx-csv
やファイル名を.csvにしてみる等を試しましたが、
ブラウザで開くとこのウェブページにアクセスできませんとなってしまいます。
処理が止まるのは、print ...;で確認して行くと、
$writer = PHPExcel_IOFactory::createWriter($book, "Excel5");
を$writer = PHPExcel_IOFactory::createWriter($book, 'csv');に
変更している位置でした。
xlsでテンプレート、内容を編集し、→csvで出力が行いたいです。
お詳しい方、どうぞ、ご教授のほど、よろしくお願い致します。
//PHPExcelをインクルード
require_once(dirname(__FILE__) . '/Classes/PHPExcel.php');
require_once(dirname(__FILE__) . '/Classes/PHPExcel/IOFactory.php');
//オブジェクトを生成
$book = new PHPExcel();
$filepath = "./templates/sample.xls";
$reader = PHPExcel_IOFactory::createReader("Excel5");
$book = $reader->load($filepath);
//シート設定
$book->setActiveSheetIndex(0);
$sheet = $book->getActiveSheet();
$sheet->setTitle('Sample'); //シート名指定
~セルに値を入れる処理~
// Excel形式で出力する
//$outputFileName = "sample.xls";
//header('Content-Type: application/vnd.ms-excel');
$outputFileName = "sample.csv";
header('Content-Type: application/x-csv');
header('Content-Disposition: attachment;filename="' . $outputFileName . '"');
header('Cache-Control: max-age=0');
//$writer = PHPExcel_IOFactory::createWriter($book, "Excel5");
$writer = PHPExcel_IOFactory::createWriter($book, 'csv');
$writer->save('php://output');
補足
ご回答ありがとうございました。原始データがExcelです。宛名書きは、CSVファイルを読み込んで行うよう、Excel Basicを組んでいます。何年も前にソフトを作成した時、いろいろ試行の上、CSVファイルとなりました。その理由は覚えていません。