2007년 02월 12일
PHP에서 excel 파일로 데이터 다운 받기
잘 알려진 팁이지만 다음과 같은 header를 날린 후 데이터를 table로 만들면 excel로 데이터를 날릴 수 있다.
header("Content-type: application/vnd.ms-excel; charset=UTF-8");
header("Content-Disposition: attachment; filename=registry2.xls");
header("Content-Description: PHP5 Generated Data");
header("Cache-Control: no-cache");
header("Pragma: no-cache");그런데 문제는 한글이 깨진다는 거... 버그로 추정되지만 header로 날린 charset는 먹지 않는다. 그래서 meta tag를 써서 다시 charset를 넣어 줘야 한다.
<meta content="application/vnd.ms-excel; charset=UTF-8" name="Content-type">
<meta content="Excel.Sheet" name="ProgId">
<meta content="PHP5" name="Generator">
이런 식으로 쓰면 된다.
# by | 2007/02/12 05:17 | Computer & Network | 트랙백 | 덧글(6)





☞ 내 이글루에 이 글과 관련된 글 쓰기 (트랙백 보내기) [도움말]
전에 잘 처리했던 코드인데 이번에 다시 코딩하면서 어떻게 했는지 기억이 안나다가 간신히 생각나서 블로그에 남겨 놓는 것...
첫번째 코드에서 CHARSET=UTF-8로 되어 있는거.. 실제로 엑셀은.. 아니 윈도우죠.. 윈도우는
CP949, KSC5601확장을 쓰기때문에 charset=EUC-KR로 하고 나중에 나오는 table태그안에
한글은 모두 iconv로 변경해서 출력하면 한글이 깨지지 않을것입니다. 버그는 아닌듯.
뭐 그렇게 생각하면 버그는 아니죠...