public function actionExportAll() { Yii::import('ext.ECSVExport.ECSVExport'); $dateToday = date("Y-m-d"); $filename = 'all-leads-submitted-' . $dateToday; header("Pragma: public"); header("Expires: 0"); header("Cache-Control: must-revalidate, post-check=0, pre-check=0"); header("Cache-Control: private", false); header("Content-Type: application/octet-stream"); header("Content-Disposition: attachment; filename=\"{$filename}.csv\";"); header("Content-Transfer-Encoding: binary"); /*find all lead and export*/ // $csv = new ECSVExport(MainLeadModel::model()->findAllByAttributes(array('user_id'=>$userModel->id))); $tempFileContainer = tempnam(sys_get_temp_dir(), "asd"); $cmd = Yii::app()->db->createCommand("SELECT * FROM tbl_gin"); $csv = new ECSVExport($cmd); $csv->setOutputFile($tempFileContainer); $csv->toCSV(); echo file_get_contents($tempFileContainer); }
/** * Save as CSV * TODO create filters for query * - hide/show column names? * - dynamically build SELECT statement? * TODO investigate potential bug in CSV extension * - may not correctly handle nulls other than in last (right-most) column */ public function actionSaveAsCSV() { $csvname = "parts.csv"; $path = Yii::app()->basePath; $filename = $path . "/runtime/" . $csvname; $cmd = Yii::app()->db->createCommand("SELECT PNPartNumber, type_id, status_id, PNRevision, PNTitle, PNDetail FROM maestro.tbl_part"); $csv = new ECSVExport($cmd); $csv->setHeader('PNPartNumber', 'PartNumber'); $csv->setHeader('type_id', 'Type'); $csv->setHeader('status_id', 'Status'); $csv->setHeader('PNRevision', 'Revision'); $csv->setHeader('PNTitle', 'Title'); $csv->setHeader('PNDetail', 'Detail'); $csv->setOutputFile($filename); $output = $csv->toCSV(); Yii::app()->getRequest()->sendFile($csvname, file_get_contents($filename)); }