답변 3개 / 댓글 1개
채택된 답변
+20 포인트
2023-11-21 (화) 22:06:53
원인은 다양 할 수 있으므로 다음을 참고하셔서 점검을 해보시는건 어떨까 합니다.
헤더 설정:
엑셀 파일을 정상적으로 다운로드하려면 적절한 헤더를 설정해야 하므로, Content-Type 및 Content-Disposition 헤더를 확인해 보세요
Copy
header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
header('Content-Disposition: attachment; filename=파일명.xlsx');
엑셀 파일 형식:
엑셀 파일을 올바른 형식으로 생성하는지 확인. PHPExcel이나 PhpSpreadsheet 등과 같은 라이브러리를 사용하는 경우, 올바른 메서드를 사용하여 엑셀 파일을 생성해야 함.
데이터 인코딩:
데이터를 엑셀로 다운로드할 때 문자 인코딩에 주의해야 함. UTF-8을 사용하면 대부분의 언어를 지원할 수 있음.
파일 확장자:
Content-Disposition 헤더에서 지정한 파일 확장자와 실제 파일 형식이 일치하는지 확인.
데이터 정제:
다운로드되는 데이터에 HTML 태그가 포함되어 있으면 해당 데이터를 정제하여 순수한 텍스트 데이터로 변환.
답변에 대한 댓글 1개
블랙캣77
2023-11-21 (화) 21:44:55
5.3에서도 방식에 따라서 엑셀 저장이 가능할텐데 어떤코드를 쓰시는건가요?
2023-11-21 (화) 17:57:17
안녕하세요.
다양한 원인이 있을수 있겠지만 먼저 인코딩 타입을 다시 확인하시고 헤더의 내용도 한번 확인을 해보세요~
Copy
header("Content-Disposition: attachment; filename=\"$filename\"");
header("Content-Type: application/vnd.ms-excel");
답변을 작성하려면 로그인이 필요합니다.