protected function fillExcel(PHPExcel $excel, aPollPoll $poll, aPollBaseForm $fields_form, aPollAnswerForm $answer_form) { // loading helpers sfContext::getInstance()->getConfiguration()->loadHelpers('a'); // file properties $excel->getProperties()->setCreator("Buddies Sàrl")->setLastModifiedBy($this->getUser()->getGuardUser()->getName())->setTitle(sprintf('Poll %s answers export', $this->poll->getTitle()))->setSubject(sprintf('Poll %s answers export', $this->poll->getTitle()))->setDescription('Export generated at ' . date('l d F Y H:i:s')); // Header $names = array(a_('Id'), a_('Posted from'), a_('Submission language'), a_('Submission date')); $excel->setActiveSheetIndex(0); $column = 'A'; $row = 1; $font = 'Arial'; $font_size = 10; // aPollAnswer fields foreach ($names as $name) { $cell = $column . $row; $excel->getActiveSheet()->setCellValue($cell, $name); $excel->getActiveSheet()->getColumnDimension($column)->setAutoSize(true); $excel->getActiveSheet()->getStyle($cell)->getFont()->setName($font); $excel->getActiveSheet()->getStyle($cell)->getFont()->setSize($font_size); $excel->getActiveSheet()->getStyle($cell)->getFont()->setBold(true); $column++; } // aPollAnswerField fields foreach ($fields_form->getFieldsToSave() as $field) { $cell = $column . $row; $excel->getActiveSheet()->setCellValue($cell, $fields_form->getWidget($field)->getLabel()); $excel->getActiveSheet()->getColumnDimension($column)->setAutoSize(true); $excel->getActiveSheet()->getStyle($cell)->getFont()->setName($font); $excel->getActiveSheet()->getStyle($cell)->getFont()->setSize($font_size); $excel->getActiveSheet()->getStyle($cell)->getFont()->setBold(true); $column++; } // answers $answer_fields_to_report = array('id', 'remote_address', 'culture', 'created_at'); $row = 1; foreach ($poll->getAnswers() as $answer) { $column = 'A'; $row++; foreach ($answer_fields_to_report as $field) { $cell = $column . $row; $excel->getActiveSheet()->setCellValue($cell, aPollToolkit::renderFormFieldValue($answer_form, $answer_form[$field], $answer->get($field))); $excel->getActiveSheet()->getStyle($cell)->getFont()->setName($font); $excel->getActiveSheet()->getStyle($cell)->getFont()->setSize($font_size); $column++; } // building array of answer fields $answer_fields = $answer->getFields(); $fields = array(); foreach ($answer_fields as $field) { $fields[$field->getName()] = $field->getValue(); } // writing values to excel foreach ($fields_form->getFieldsToSave() as $name) { $cell = $column . $row; if (isset($fields[$name])) { $fields_form_field = $fields_form[$name]; $excel->getActiveSheet()->setCellValue($cell, aPollToolkit::renderFormFieldValue($fields_form, $fields_form_field, $fields[$name])); $excel->getActiveSheet()->getStyle($cell)->getFont()->setName($font); $excel->getActiveSheet()->getStyle($cell)->getFont()->setSize($font_size); } $column++; } } $excel->setActiveSheetIndex(0); return $excel; }
?> <?php $value = $form[$name]->getValue(); ?> <?php $type = gettype($value); ?> <tr class="<?php echo 'a-form-row a-admin-' . strtolower($type) . ' a-admin-form-field-' . $name; ?> "> <td class="a-form-label"><?php echo $form->getWidget($name)->getLabel() ? $form->getWidget($name)->getLabel() : $name; ?> </td> <td class="a-form-field"> <?php echo aPollToolkit::renderFormFieldValue($form, $field instanceof sfOutputEscaper ? $field->getRawValue() : $field, $value); ?> </td> </tr> <?php } ?> </tbody> </table> </div> </div>