CakePHPでcsvエクスポートするには便利なcsvヘルパーが用意されています。
csvヘルパーをコピーアンドペーストして、csv.phpというファイル名にします。
その後、views/helpers/配下に配置します。
コントローラ側は以下のように記述します。
デバッグモードにしているとデバッグもエクスポートされるため、デバッグモードをオフにします。
function csvexport() {
var $helpers = array('Csv');
Configure::write('debug', 0); // デバッグオフ
$this->layout = false;
$this->set('data', $this->User->find('all'));
}
ビュー側は、csvexport.ctpというファイルを作成し、以下のように記述します。
addGridの第二引数でヘッダー表示非表示を選択できます。
setFilenameでデフォルトのcsvファイル名を指定できます。
<?php
$csv->addGrid($data,false);
$csv->setFilename("export.csv");
echo $csv->render();
?>
SJISでエクスポートするには最初のファイルのaddRowメソッドを変更します。
csvヘルパー(SJIS)をコピーアンドペーストします。
これでsjisでcsvをエクスポートすることが出来ます。(178~180行目を追加しています。)