제목 | phpexcel 사용하여 excel download시 오류 | ||
---|---|---|---|
카테고리 | PHP | ||
글쓴이 | 순돌이33 | 작성시각 | 2018/04/19 11:03:14 |
|
|||
안녕하세요 PHPEXCEL로 개발 시 잘 되지 않는 부분이 잇어서 문의 합니다. EXCEL을 읽어서 처리하는 건 잘되는 걸로 봐서는 PHPEXCEL 라이브러리는 제대로 LOAD되는거 같습니다. (사실 PHP를 잘모릅니다. -.-;;) Sample코드는 다음과 같습니다. -- controller 소스 $this->load->library("PHPExcel"); $filename = 'test2.xls'; $this->phpexcel->getActiveSheet()->setTitle('부대운임'); $this->phpexcel->getActiveSheet()->setCellValue('A1', 'partner'); $this->phpexcel->getActiveSheet()->getColumnDimension('A')->setWidth(12); $this->phpexcel->getActiveSheet()->setCellValue('A2', '1234'); header("Content-Type: application/vnd.ms-excel; charset=utf-8"); header('Content-Disposition: attachment;filename="' . $filename . '"'); header('Cache-Control: max-age=0'); $objWriter = PHPExcel_IOFactory::createWriter($this->phpexcel, 'Excel5'); ob_end_clean(); $objWriter->save('php://output'); exit; CodeIgniter 참고해서 테스트를 했는데 브라우저에 아무런 반응이 없습니다. 화면에서는 ajax를 통해 호출 했습니다. 크롬에서 F12 클릭해서 네트워로 해당 호출 내용을 보면 첨부파일과 같이 나옵니다. $objWriter->save('php://output'); 이부분을 $writer->save('d:\out.xlsx');로 바꾸면 로컬 pc에 excel은 잘 저장됩니다. header 부분이 문제인거 같기도 하고 일단 echo 같은 화면 출력은 하지 않고 있습니다. 어떤 문제가 있는 걸까요? 아시는 분 답변 부탁드립니다. 감사합니다.
|
|||
태그 | excel,phpexcel | ||
첨부파일 |
excel_down.png (298.0 KB) |
||
다음글 | 자동로그인에 대하여 | ||
이전글 | MariaDB & MySQL 데이터베이스 단위 ... (4) | ||
양승현
/
2018/04/19 17:54:24 /
추천
0
|
변종원(웅파)
/
2018/04/19 18:31:39 /
추천
0
정상적으로 리턴 된 것인데 리턴된 데이터를 자바스크립트에서 못 읽는것이죠.
|
순돌이33
/
2018/04/20 09:29:03 /
추천
0
제 생각에도 excel down위한 처리는 별 문제는 없는거 같습니다. save를 로컬 경로로 하면 로컬 경로에 파일은 생성됩니다. 자바스크립트에서 읽기 위해서 다른 처리가 필요한가요? 아래 자바스크립트 소스입니다.
fn_excel_down = function(){ $.ajax({ } |
양승현
/
2018/04/20 16:35:38 /
추천
0
ajax로 호출을 하신거군요.. 당연히.. 데이터는 넘어오나 넘어온 데이터로 끝납니다. 위 상태로 하시기에는 response 받은 데이터를 파일로 저장하는.. 뭐 그런? 작업이 필요한데요.
보통은 form을 콜하는 형태로 많이들 구현합니다. 뭐 새창으로 url을 열어도 되구용.. 방법은 여러가지겠지용
<label id="fbtn">버튼</label> <form id="excelForm"></form> <script type="text/javascript"> <!-- $(document).ready(function(){ $("label#fbtn").on("click",function(){ $("#excelForm").attr({'method':'post','action':'/dev/test3/exceldownload'}); $("#excelForm").submit(); }); }); //--> </script>
|
로컬에서 정상적으로 다운로드 됩니다.
(PHPEXcel경로 : /application/libraries/third_party/PHPExcel)