예제 #1
0
 public function toexcelmonthAction()
 {
     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->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);
     if (isset($_SESSION['year']) && isset($_SESSION['month'])) {
         $year = $_SESSION['year'];
         $month = $_SESSION['month'];
     } else {
         $currend_date = new Zend_Date();
         $ss = $currend_date->toArray();
         $year = $ss['year'];
         $month = (int) $ss['month'];
         if ($month < 10) {
             $month = "0{$month}";
         }
         $_SESSION['year'] = $year;
         $_SESSION['month'] = $month;
     }
     $date = "{$year}-{$month}";
     $repairs = new Application_Model_DbTable_Repairs();
     $data = $repairs->statisticRepairs($date);
     $i = 2;
     $sheet->setTitle("Repairs {$date}");
     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_mounth.xls');
     // открываем файл в бинарном режиме
     header("Location: http://{$settings['excel']['site']}/repairs_mounth.xls");
 }