cakePHPでCSV出力するぜ!
「ぜ!」って程の事ではないのですが、最近よく仕事でやっているので覚え書きの為にメモしておきます。
利用している環境はcakePHP1.2でPHP5です。今回は仮に、sitesテーブルに登録されているデータを一括でCSVにしてダウンロードする想定でサンプルしてみます。
1, Csv用ヘルパーの導入
/views/helpersにcsv.phpと言うファイルを作成し、こちらのコードをコピペしますw
2, コントローラーの作成
こんな感じに作成します。
[php]
function download () {
Configure::write(‘debug’, 0);
$this->layout = false;
$this->set( ‘sites’, $this->Site->find( ‘all’ ) );
}
[/php]
この際、$helpersにCsvヘルパーを追加しておくのを忘れない様に気をつけましょう。
[PHP]
$helpers = array( ‘Csv’ );
[/PHP]
3, ビューの作成
次に、実際にCSVを吐き出す為のビューを作成します。単にデータだけで良い場合は、
[PHP]
foreach ( $sites as $site ) $csv->addRow( $site );
$csv->setFilename( date( ‘YmdHis’ ) );
echo $csv->render( true, ‘sjis’, ‘utf-8′ );
[/PHP]
でOKです。これで、/sites/downloadにアクセスすると、CSVがダウンロードされます。簡単です。
Posted in: 未分類
コメントする

