예제 #1
0
 public function toexcelAction()
 {
     global $settings;
     // Подключаем класс для работы с excel
     require_once 'PHPExcel.php';
     // Подключаем класс для вывода данных в формате excel
     require_once 'PHPExcel/Writer/Excel5.php';
     // Создаем объект класса PHPExcel
     $xls = new PHPExcel();
     // Устанавливаем индекс активного листа
     $xls->setActiveSheetIndex(0);
     // Получаем активный лист
     $sheet = $xls->getActiveSheet();
     // Подписываем лист
     $sheet->setTitle('Repairs All');
     $sheet->setCellValue("A1", '№');
     $sheet->setCellValue("B1", 'Дата');
     $sheet->setCellValue("C1", 'Номер');
     $sheet->setCellValue("D1", 'Жалоба');
     $sheet->setCellValue("E1", 'Диагноз');
     $sheet->setCellValue("F1", 'Работа');
     $sheet->setCellValue("G1", 'Запчасти');
     $sheet->setCellValue("H1", 'Коментарии');
     //меняем цвет заголовка
     $sheet->getStyle('A1')->getFill()->setFillType(PHPExcel_Style_Fill::FILL_SOLID);
     $sheet->getStyle('A1')->getFill()->getStartColor()->setRGB('EEEEEE');
     $sheet->getStyle('B1')->getFill()->setFillType(PHPExcel_Style_Fill::FILL_SOLID);
     $sheet->getStyle('B1')->getFill()->getStartColor()->setRGB('EEEEEE');
     $sheet->getStyle('C1')->getFill()->setFillType(PHPExcel_Style_Fill::FILL_SOLID);
     $sheet->getStyle('C1')->getFill()->getStartColor()->setRGB('EEEEEE');
     $sheet->getStyle('D1')->getFill()->setFillType(PHPExcel_Style_Fill::FILL_SOLID);
     $sheet->getStyle('D1')->getFill()->getStartColor()->setRGB('EEEEEE');
     $sheet->getStyle('E1')->getFill()->setFillType(PHPExcel_Style_Fill::FILL_SOLID);
     $sheet->getStyle('E1')->getFill()->getStartColor()->setRGB('EEEEEE');
     $sheet->getStyle('F1')->getFill()->setFillType(PHPExcel_Style_Fill::FILL_SOLID);
     $sheet->getStyle('F1')->getFill()->getStartColor()->setRGB('EEEEEE');
     $sheet->getStyle('G1')->getFill()->setFillType(PHPExcel_Style_Fill::FILL_SOLID);
     $sheet->getStyle('G1')->getFill()->getStartColor()->setRGB('EEEEEE');
     $sheet->getStyle('H1')->getFill()->setFillType(PHPExcel_Style_Fill::FILL_SOLID);
     $sheet->getStyle('H1')->getFill()->getStartColor()->setRGB('EEEEEE');
     $sheet->getStyle('A')->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_LEFT);
     // автоматическая ширина ячейки
     $sheet->getColumnDimension('A')->setAutoSize(true);
     $sheet->getColumnDimension('B')->setAutoSize(true);
     $sheet->getColumnDimension('C')->setAutoSize(true);
     $sheet->getColumnDimension('D')->setAutoSize(true);
     $sheet->getColumnDimension('E')->setAutoSize(true);
     $sheet->getColumnDimension('F')->setAutoSize(true);
     $sheet->getColumnDimension('G')->setAutoSize(true);
     $sheet->getColumnDimension('H')->setAutoSize(true);
     // формат ячейки текстовый
     $sheet->getStyle('A')->getNumberFormat()->setFormatCode(PHPExcel_Style_NumberFormat::FORMAT_TEXT);
     $sheet->getStyle('B')->getNumberFormat()->setFormatCode(PHPExcel_Style_NumberFormat::FORMAT_TEXT);
     $sheet->getStyle('C')->getNumberFormat()->setFormatCode(PHPExcel_Style_NumberFormat::FORMAT_TEXT);
     $sheet->getStyle('D')->getNumberFormat()->setFormatCode(PHPExcel_Style_NumberFormat::FORMAT_TEXT);
     $sheet->getStyle('E')->getNumberFormat()->setFormatCode(PHPExcel_Style_NumberFormat::FORMAT_TEXT);
     $sheet->getStyle('F')->getNumberFormat()->setFormatCode(PHPExcel_Style_NumberFormat::FORMAT_TEXT);
     $sheet->getStyle('G')->getNumberFormat()->setFormatCode(PHPExcel_Style_NumberFormat::FORMAT_TEXT);
     $sheet->getStyle('H')->getNumberFormat()->setFormatCode(PHPExcel_Style_NumberFormat::FORMAT_TEXT);
     $repairs = new Application_Model_DbTable_Repairs();
     $data = $repairs->fetchAll()->toArray();
     $i = 2;
     foreach ($data as $rows) {
         $number = $i - 1;
         $sheet->setCellValue("A{$i}", "{$number}");
         $sheet->setCellValue("B{$i}", "{$rows['date']}");
         $sheet->setCellValue("C{$i}", "{$rows['number']}");
         $sheet->setCellValue("D{$i}", "{$rows['claim']}");
         $sheet->setCellValue("E{$i}", "{$rows['diagnos']}");
         $sheet->setCellValue("F{$i}", "{$rows['work']}");
         $sheet->setCellValue("G{$i}", "{$rows['spares']}");
         $sheet->setCellValue("H{$i}", "{$rows['comments']}");
         $i++;
     }
     // Выводим содержимое файла
     $objWriter = new PHPExcel_Writer_Excel5($xls);
     $objWriter->save('repairs.xls');
     // открываем файл в бинарном режиме
     header("Location: http://{$settings['excel']['site']}/repairs.xls");
 }