仕事をしていると先方から集計等の機能依頼をされることが多々あると思います。集計等はブラウザからの閲覧やCSVファイルのダウンロードなど必要だったりします。そこで今回は、CakePHPでCSVファイルのダウンロード機能を備忘録がてらエントリー。
ソース
ControllerにCSVファイルのダウンロードさせるアクションメソッドを追加
今回の場合は、admin_csv_download()
<?php
function admin_csv_download() {
// ビューを使わないように設定
$this->autoRender = false;
// デバックを出力しない
Configure::write('debug', 0);
// ファイル名をセット
$filename = "hogehoge.csv";
// HTMLヘッダー
header ("Content-disposition: attachment; filename=" . $filename);
header ("Content-type: application/octet-stream; name=" . $filename);
// CSVの1行目をセット
$csvheader = "ユーザーID,ユーザー名,登録日";
// UTF-8をSJISに変換して出力
print mb_convert_encoding($csvheader, 'SJIS', 'UTF-8');
print "\r\n";
// データを取得
$data = $this->ModelName->find(
// 抽出条件を書く
);
// データを出力
foreach( $data as $key => $value ) {
print mb_convert_encoding(implode(',', $value['ModelName']), 'SJIS', 'UTF-8');
print "\r\n";
}
return;
}
簡単にCSVダウンロード機能ができた。
今回、CSVダウンロード機能の実装はIDEA*IDEAさんの記事を参考にさせて頂いきました。
Comments / Trackbacks
トラックバックはありません