예제 #1
0
 public function exportAction()
 {
     $this->view->layout()->disableLayout();
     $this->_helper->viewRenderer->setNoRender(true);
     include_once LIBRARY_PATH . "/Base/Excel/PHPExcel.php";
     $objPHPExcel = new PHPExcel();
     $where = "1=1 AND status!='deleted'";
     $order = "addedon DESC";
     // Add some data
     $objPHPExcel->setActiveSheetIndex(0)->setCellValue('A1', 'S. No.')->setCellValue('B1', 'Username')->setCellValue('C1', 'First Name')->setCellValue('D1', 'Surname')->setCellValue('E1', 'Email')->setCellValue('F1', 'Gender')->setCellValue('G1', 'Number of Friends')->setCellValue('H1', 'Created On');
     $model = new Application_Model_User();
     $users = $model->fetchAll($where, $order);
     if (count($users) > 0) {
         $i = 2;
         $sno = 1;
         foreach ($users as $_user) {
             //select users Numbers of friends
             $noOfFriends = 0;
             $friendM = new Application_Model_Friend();
             $userFriends = $friendM->countUserFriends($_user->getId());
             $noOfFriends = $userFriends["totalFriends"];
             //$country = $_user->findParentRow('Application_Model_DbTable_Country','Country');
             // $state  =  $_user->findParentRow('Application_Model_DbTable_State','State');
             $objPHPExcel->setActiveSheetIndex(0)->setCellValue('A' . $i, $sno)->setCellValue('B' . $i, $_user->getUsername())->setCellValue('C' . $i, $_user->getFirstName())->setCellValue('D' . $i, $_user->getLastName())->setCellValue('E' . $i, $_user->getEmail())->setCellValue('F' . $i, ucfirst($_user->getSex()))->setCellValue('G' . $i, $noOfFriends)->setCellValue('H' . $i, date("M j, Y", $_user->getAddedOn()));
             $i++;
             $sno++;
         }
     }
     // Rename sheet
     $objPHPExcel->getActiveSheet()->setTitle('Users');
     $objPHPExcel->getActiveSheet()->getColumnDimension('A')->setWidth(10);
     $objPHPExcel->getActiveSheet()->getColumnDimension('B')->setWidth(35);
     $objPHPExcel->getActiveSheet()->getColumnDimension('C')->setWidth(15);
     $objPHPExcel->getActiveSheet()->getColumnDimension('D')->setWidth(15);
     $objPHPExcel->getActiveSheet()->getColumnDimension('E')->setWidth(45);
     $objPHPExcel->getActiveSheet()->getColumnDimension('F')->setWidth(15);
     $objPHPExcel->getActiveSheet()->getColumnDimension('G')->setWidth(15);
     //$objPHPExcel->getActiveSheet()->getColumnDimension('H')->setWidth(25);
     //$objPHPExcel->getActiveSheet()->getColumnDimension('I')->setWidth(15);
     //$objPHPExcel->getActiveSheet()->getColumnDimension('J')->setWidth(15);
     //$objPHPExcel->getActiveSheet()->getColumnDimension('K')->setWidth(15);
     // Set active sheet index to the first sheet, so Excel opens this as the first sheet
     $objPHPExcel->setActiveSheetIndex(0);
     if ($this->_getParam('type') == 'xls') {
         // Redirect output to a client’s web browser (Excel5)
         header('Content-Type: application/vnd.ms-excel');
         header('Content-Disposition: attachment;filename="users.xls"');
         header('Cache-Control: max-age=0');
         $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');
     } else {
         if ($this->_getParam('type') == 'pdf') {
             // Redirect output to a client’s web browser (Excel2007)
             header('Content-Type: application/pdf');
             header('Content-Disposition: attachment;filename="users.pdf"');
             header('Cache-Control: max-age=0');
             $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'PDF');
         } else {
             if ($this->_getParam('type') == 'csv') {
                 // Redirect output to a client’s web browser (Excel5)
                 header('Content-Type: application/vnd.ms-excel');
                 header('Content-Disposition: attachment;filename="users.csv"');
                 header('Cache-Control: max-age=0');
                 $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'CSV');
             }
         }
     }
     $objWriter->save('php://output');
 }