public function export() { $objPHPExcel = new sfPhpExcel(); // Set properties $objPHPExcel->getProperties()->setCreator("SensorSix"); $objPHPExcel->getProperties()->setLastModifiedBy("SensorSix"); $objPHPExcel->setActiveSheetIndex(0); $this->sheet = $objPHPExcel->getActiveSheet(); $this->buildHead(); $this->buildBody(); // Rename sheet $objPHPExcel->getActiveSheet()->setTitle('Alternatives'); // Set active sheet index to the first sheet, so Excel opens this as the first sheet $objPHPExcel->setActiveSheetIndex(0); // Save Excel 2007 file $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007'); $objWriter->save('php://output'); }
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA * * @category PHPExcel * @package PHPExcel * @copyright Copyright (c) 2006 - 2009 PHPExcel (http://www.codeplex.com/PHPExcel) * @license http://www.gnu.org/licenses/lgpl.txt LGPL * @version 1.6.7, 2009-04-22 */ /* Modified by Bertrand Zuchuat */ require_once 'symfony.inc.php'; // Create new PHPExcel object echo date('H:i:s') . " Create new PHPExcel object\n"; $objPHPExcel = new sfPhpExcel(); // Set properties echo date('H:i:s') . " Set properties\n"; $objPHPExcel->getProperties()->setCreator("Maarten Balliauw"); $objPHPExcel->getProperties()->setLastModifiedBy("Maarten Balliauw"); $objPHPExcel->getProperties()->setTitle("Office 2007 XLSX Test Document"); $objPHPExcel->getProperties()->setSubject("Office 2007 XLSX Test Document"); $objPHPExcel->getProperties()->setDescription("Test document for Office 2007 XLSX, generated using PHP classes."); $objPHPExcel->getProperties()->setKeywords("office 2007 openxml php"); $objPHPExcel->getProperties()->setCategory("Test result file"); // Create a first sheet, representing sales data echo date('H:i:s') . " Add some data\n"; $objPHPExcel->setActiveSheetIndex(0); $objPHPExcel->getActiveSheet()->setCellValue('A1', 'Description'); $objPHPExcel->getActiveSheet()->setCellValue('B1', 'Amount'); $objPHPExcel->getActiveSheet()->setCellValue('A2', 'Paycheck received'); $objPHPExcel->getActiveSheet()->setCellValue('B2', 100); $objPHPExcel->getActiveSheet()->setCellValue('A3', 'Cup of coffee bought'); $objPHPExcel->getActiveSheet()->setCellValue('B3', -1.5);
Number of rows Seconds to generate 200 3 500 4 1000 6 2000 12 4000 36 8000 64 15000 465 */ // Create new PHPExcel object echo date('H:i:s') . " Create new PHPExcel object\n"; $objPHPExcel = new sfPhpExcel(); // Set properties echo date('H:i:s') . " Set properties\n"; $objPHPExcel->getProperties()->setCreator("Maarten Balliauw"); $objPHPExcel->getProperties()->setLastModifiedBy("Maarten Balliauw"); $objPHPExcel->getProperties()->setTitle("Office 2007 XLSX Test Document"); $objPHPExcel->getProperties()->setSubject("Office 2007 XLSX Test Document"); $objPHPExcel->getProperties()->setDescription("Test document for Office 2007 XLSX, generated using PHP classes."); $objPHPExcel->getProperties()->setKeywords("office 2007 openxml php"); $objPHPExcel->getProperties()->setCategory("Test result file"); // Create a first sheet echo date('H:i:s') . " Add data\n"; $objPHPExcel->setActiveSheetIndex(0); $objPHPExcel->getActiveSheet()->setCellValue('A1', "Firstname"); $objPHPExcel->getActiveSheet()->setCellValue('B1', "Lastname"); $objPHPExcel->getActiveSheet()->setCellValue('C1', "Phone"); $objPHPExcel->getActiveSheet()->setCellValue('D1', "Fax"); $objPHPExcel->getActiveSheet()->setCellValue('E1', "Is Client ?"); // Hide "Phone" and "fax" column
/** * @param sfWebRequest $request */ public function executeExcelExport(sfWebRequest $request) { $decision_id = $request->getParameter('decision_id', false); /** @var Decision $decision */ $decision = DecisionTable::getInstance()->getDecisionForUser($this->getUser()->getGuardUser(), $decision_id); $this->forward404Unless($decision); $objPHPExcel = new sfPhpExcel(); header('Content-type: application/force-download'); header('Content-Disposition: attachment; filename="' . $decision->name . '.xlsx"'); // Set properties $objPHPExcel->getProperties()->setCreator("SensorSix"); $objPHPExcel->getProperties()->setLastModifiedBy("SensorSix"); // Add some data $objPHPExcel->setActiveSheetIndex(0); /** @var ProjectRelease[] $releases */ $releases = Doctrine_Query::create()->from('ProjectRelease r')->leftJoin('r.ProjectReleaseAlternative ra')->leftJoin('ra.Alternative a')->where('r.decision_id = ? AND r.criterion_id = ?', array($decision_id, $request->getParameter('criterion_id')))->execute(); $index = 1; $sheet = $objPHPExcel->getActiveSheet(); foreach ($releases as $release) { $sheet->setCellValue('A' . $index++, $release->name); foreach ($release->ProjectReleaseAlternative as $releaseAlternative) { $sheet->setCellValue('B' . $index, $releaseAlternative->Alternative->name); $sheet->setCellValueExplicit('C' . $index, $releaseAlternative->value, PHPExcel_Cell_DataType::TYPE_NUMERIC); $index++; } $sheet->setCellValue('B' . ++$index, 'Total:'); $sheet->setCellValueExplicit('C' . $index, $release->value, PHPExcel_Cell_DataType::TYPE_NUMERIC); $index += 2; } // Rename sheet $objPHPExcel->getActiveSheet()->setTitle('Releases'); // Set active sheet index to the first sheet, so Excel opens this as the first sheet $objPHPExcel->setActiveSheetIndex(0); // Save Excel 2007 file $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007'); $objWriter->save('php://output'); exit; }
public function executeExcelExport(sfWebRequest $request) { $decision_id = $request->getParameter('decision_id', false); /** @var Decision $decision */ $decision = DecisionTable::getInstance()->getDecisionForUser($this->getUser()->getGuardUser(), $decision_id); $this->forward404Unless($decision); $average_analyze = new AverageAnalyze(); $average_analyze->setDecisionId($decision_id); $average_analyze->load(); $measurement = $average_analyze->getMeasurement(); $objPHPExcel = new sfPhpExcel(); header('Content-type: application/force-download'); header('Content-Disposition: attachment; filename="Alternatives (' . $decision->name . ').xlsx"'); // Set properties $objPHPExcel->getProperties()->setCreator("SensorSix"); $objPHPExcel->getProperties()->setLastModifiedBy("SensorSix"); // Add some data $objPHPExcel->setActiveSheetIndex(0); $index = 1; $column_index = 0; $sheet = $objPHPExcel->getActiveSheet(); // Add default header foreach (array('ID', 'Name', 'Status', 'Work progress', 'Tags', 'Additional info', 'Notes', 'Due date', 'Notify date', 'Created at', 'Created by', 'Updated at', 'Updated by', 'Custom fields') as $value) { $sheet->setCellValue(PHPExcel_Cell::stringFromColumnIndex($column_index++) . $index, $value); } // Add criterias in header foreach ($average_analyze->getCriteriaNames() as $criteria_name) { $sheet->setCellValue(PHPExcel_Cell::stringFromColumnIndex($column_index++) . $index, $criteria_name); } foreach ($decision->getAlternative() as $alternative) { /** @var Alternative $alternative */ $index++; $column_index = 0; $tags = array(); foreach ($alternative->getTagAlternative() as $tag) { $tags[] = $tag->Tag->name; } $sheet->setCellValue(PHPExcel_Cell::stringFromColumnIndex($column_index++) . $index, $alternative->getItemId()); $sheet->setCellValue(PHPExcel_Cell::stringFromColumnIndex($column_index++) . $index, $alternative->name); $sheet->setCellValue(PHPExcel_Cell::stringFromColumnIndex($column_index++) . $index, $alternative->status); $sheet->setCellValue(PHPExcel_Cell::stringFromColumnIndex($column_index++) . $index, $alternative->work_progress); $sheet->setCellValue(PHPExcel_Cell::stringFromColumnIndex($column_index++) . $index, implode(', ', $tags)); $sheet->setCellValue(PHPExcel_Cell::stringFromColumnIndex($column_index++) . $index, $alternative->additional_info); $sheet->setCellValue(PHPExcel_Cell::stringFromColumnIndex($column_index++) . $index, $alternative->notes); $sheet->setCellValue(PHPExcel_Cell::stringFromColumnIndex($column_index++) . $index, $alternative->due_date); $sheet->setCellValue(PHPExcel_Cell::stringFromColumnIndex($column_index++) . $index, $alternative->notify_date); $sheet->setCellValue(PHPExcel_Cell::stringFromColumnIndex($column_index++) . $index, $alternative->created_at); $sheet->setCellValue(PHPExcel_Cell::stringFromColumnIndex($column_index++) . $index, $alternative->created_by); $sheet->setCellValue(PHPExcel_Cell::stringFromColumnIndex($column_index++) . $index, $alternative->updated_at); $sheet->setCellValue(PHPExcel_Cell::stringFromColumnIndex($column_index++) . $index, $alternative->updated_by); $custom_fields = array(); foreach (json_decode($alternative->custom_fields, true) as $key => $value) { $custom_fields[] = $key . ': ' . $value; } $sheet->setCellValue(PHPExcel_Cell::stringFromColumnIndex($column_index++) . $index, implode(PHP_EOL, $custom_fields)); foreach ($average_analyze->getCriteriaNames() as $criteria_id => $criteria_name) { if (array_key_exists($alternative->getId(), $measurement[$criteria_id])) { $sheet->setCellValue(PHPExcel_Cell::stringFromColumnIndex($column_index) . $index, $measurement[$criteria_id][$alternative->getId()]->getAverage()); } $column_index++; } } for ($i = 0; $i <= $column_index; $i++) { $sheet->getColumnDimensionByColumn($i)->setAutoSize(true); } $sheet->calculateColumnWidths(); // Rename sheet $objPHPExcel->getActiveSheet()->setTitle('Alternatives'); // Set active sheet index to the first sheet, so Excel opens this as the first sheet $objPHPExcel->setActiveSheetIndex(0); // Save Excel 2007 file $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007'); $objWriter->save('php://output'); exit; }