CentOS
PHPExcel의 공백
codebank
2015. 10. 8. 17:16
PHP 항목이지만 귀찮기도하고 어차피 CentOS에서 작업중이니 그냥 이곳에...
html작업을 하다보면 표로 만들어진 데이터를 엑셀로 받아보고 싶어하는 경우가 생긴다. html4 이전 문서를 참고하면 쉽게 만들 수는 있는데 조금 꾸며야 할 부분이 생겨서 찾아보니 PHPExcel이라는 공개되어있는 Class가 있었다.
https://phpexcel.codeplex.com/ 에서 받거나 https://github.com/PHPOffice/PHPExcel 에서 관리되고 있으니 이곳에서 받아도 된다.
샘플을 참고하여 데이터를 출력하는 파일을 만들어서 호출을 했는데 이상하게 download받은 파일을 열 수 가 없다고 에러를 출력한다. 이런저런 환경을 조성해며 반나절을 고생한 끝에 겨우 원인을 발견했다.
원인을 Excel에서 바로 읽어들이는 에러없는 파일과 Excel에서 읽을 수 없다는 에러있는 파일을 비교하니 (Hexa로 비교하지 않고 일반 text로 비교) 에러있는 파일은 최소 6~8글자가 더 있는 것이다. 즉, 일반적으로 'PK...'로 시작해야하는 문서가 ' \r\n \r\nPK...' 형태로 되어있었다.
어딘가에서 무엇을 출력하는지를 찾아보려고 고생한 결과 PHPExcel의 sample 문서의
ini_set('display_errors', TRUE);
ini_set('display_startup_errors', TRUE);
ini_set('memory_limit', '-1');
ini_set('max_execution_time', '0');
if (PHP_SAPI == 'cli')
die('This example should only be run from a Web Browser');
구문 때문이라는걸 알게 되었다.
결국 위 항목을 주석처리하고 문제를 해결했다. 해피엔딩...
- 작은 Tip이라도 적어놔야 나중에 찾아보겠지...-