<%@ page language="java" contentType="application/vnd.ms-excel; name='excel', text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
1. 첫번째 방법
<%
response.setHeader("Content-Disposition", "attachment; filename=diary.xls");
response.setHeader("Content-Description", "JSP Generated Data");
response.setContentType("application/vnd.ms-excel");
%>
2. 두번째 방법
<%@ page contentType="application/vnd.ms-excel;charset=euc-kr" %>
<%
response.setHeader("Content-Disposition", "attachment; filename=LIST.xls");
response.setHeader("Content-Description", "JSP Generated Data");
%>
3. 세번째 방법 (한파일에 기본 페이지와 엑셀 다운로드 설정할때)
<%
if(actionKind.equals("Search")){
response.setContentType("text/html; charset=euc-kr");
}else{
response.setHeader("Content-Disposition", "attachment; filename=diary.xls");
response.setHeader("Content-Description", "JSP Generated Data");
response.setContentType("application/vnd.ms-excel");
}
%>
4. 네번째 방법 (한글 제목에 브라우저별 처리)titleName = "한글제목";
titleName = new String(titleName.getBytes("KSC5601"), "8859_1");
if(clientBrowser.indexOf("MSIE 5.5")>-1 || clientBrowser.indexOf("MSIE 6.0") > -1 ){
response.setHeader("Content-Type", "doesn/matter;");
response.setHeader("Content-Disposition", "filename="+titleName+".xls");
}else{
response.setHeader("Content-Type", "application/vnd.ms-excel;charset=EUC-KR");
response.setHeader("Content-Disposition", "attachment; filename="+titleName+".xls");
}
response.setHeader("Content-Transfer-Encoding", "binary;");
response.setHeader("Pragma", "no-cache;");
response.setHeader("Expires", "-1;");
한글깨짐
head 에 다음과 같은 처리를 같이 해주면 왠만하면 해결이 된다.
<META HTTP-EQUIVE="CONTENT-TYPE" CONTENT="TEXT/HTML; CHARSET=KSC5601">
운영서버에서는 한글이 다 깨지는데 개발서버에서는 제대로 나와서 더 해결방법 찾기가 난감했다.
jsp 소스를 운영 거로 업어치고 나서도 여전히 잘만 보이는 개발서버 쪽 엑셀.. 뭐가 문제냐. ㄱ-
DB 상의 데이터까지 운영 쪽으로 맞추니 그제서야 한글이 깨지기 시작했다.
그럼 문제는 데이터라는 소리인데.. 어떻게 봐도 한글이 깨질 건수가 안 보였다.
웹 상에 떠도는 한글 깨짐 방지 태그라는
<meta http-equiv="Content-Type" content="text/html; charset=euc-kr">
이 녀석을 써 봐도 여전히 묵묵부답..
하지만 해결책은 간단했다.
엑셀 녀석이 데이터를 인코딩 태그로 인식하는 경우가 간혹 생기는데
데이터 타입 앞에 만 입력해주면 끝. 아주 깨끗하게 잘 나온다.
<td> <%= crset.getString(1) %></td> ← 이런 식으로
'마니의 공부방 > 개발 꼼수' 카테고리의 다른 글
구글 크롬 단축키 (0) | 2011.03.17 |
---|---|
두개의 도메인 + 하나의 아파치 + 각각 도메인별 두개의 톰켓 (1) | 2011.03.16 |
[excel] 한영 자동변환 기능 끄기 (0) | 2011.03.16 |
[jsp] 파라미터 한글깨짐현상 (0) | 2011.03.10 |
jquery 폼 전체요소 활성화 컨트롤 (0) | 2011.03.02 |