2016-10-13 4 views
3

가 여기에 엑셀이 데이터베이스에서 데이터 파일을 생성하는 로컬 호스트에서 잘 작동 내 코드 서버에 파일을 엑셀 생성하지만, 서버 호스팅에 빈 엑셀 파일 생성phpexcel 라이브러리는 로컬 호스트에서 잘 작동하지만 빈은

// Starting the PHPExcel library 
      $this->load->library('PHPExcel'); 
      //$this->load->library('PHPExcel/IOFactory'); 

      $objPHPExcel = new PHPExcel(); 
      $objPHPExcel->getProperties()->setTitle("export")->setDescription("none"); 
      $objPHPExcel->setActiveSheetIndex(0); 

      // Field names in the first row 
      $fields = $query->list_fields(); 
      $col = 0; 
      foreach ($fields as $field) 
      { 
       $objPHPExcel->getActiveSheet()->setCellValueByColumnAndRow($col, 1, $field); 
       $col++; 
      } 

      //format the column sizes 
      $sheet = $objPHPExcel->getActiveSheet(); 
      $cellIterator = $sheet->getRowIterator()->current()->getCellIterator(); 
      $cellIterator->setIterateOnlyExistingCells(true); 
      /** @var PHPExcel_Cell $cell */ 
      foreach($cellIterator as $cell) { 
        $sheet->getColumnDimension($cell->getColumn())->setAutoSize(true); 
      } 

      //var_dump($query->result()); 
      //die; 

      // Fetching the table data 
      $row = 2; 
      foreach($query->result() as $data) 
      { 
       $col = 0; 
       foreach($fields as $field) 
       { 
        $objPHPExcel->getActiveSheet()->setCellValueByColumnAndRow($col, $row, $data->$field); 
        $col++; 
       } 

       $row++; 
      } 

      $objPHPExcel->setActiveSheetIndex(0); 
      $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007'); 


      header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'); 
      header('Content-Disposition: attachment;filename="01simple.xlsx"'); 
      header('Cache-Control: max-age=0'); 

      ob_clean(); 
      $objWriter->save('php://output'); 
+1

로컬 서버에 올바른 종속성 (모듈)이 설치되어 있고 호스트 서버에 누락 된 것일 수 있습니다. 그것은 우선 조사해야 할 것입니다. – TimBrownlaw

+0

에도이 문제가있었습니다. 해결책을 찾지 못했습니다 .-- ( –

답변

4

문제는 phpexcel과 관련이 없다고 생각합니다. 나는 비슷한 문제를 일찌감치 직면하고 나중에 CI의 list_fields() 함수가 일부 리눅스 서버에서 작동하지 않는다는 것을 발견했다. 이 기능을 사용하는 대신 필드 이름을 정적으로 배치하여이 부분을 확인할 수 있습니다.

+0

라만 아시크에게 감사드립니다. 그것은 매력처럼 일했습니다 :-) – gigabit

관련 문제