기존 xls 파일로 변환시 html 태그가 삽입되어 테이블 형식으로 표현하게 되는데
일반 97-2003 의 MS Excel에서는 Open 되어도 한글의 깨짐현상이 없었지만
OpenOffice로 XLS 파일을 열시 영문과 숫자를 제외한 한글이 모두 깨짐현상이 발생하였다.
OpenOffice에서 Open 시 한글 변환시 깨진 코드는 이렇다
// GridView에 값을 바인딩한다.
DataView.DataBind();
Response.AddHeader("content-disposition", "attachment;filename=excel.xls");
Response.ContentType = "application/vnd.ms-excel";
System.IO.StringWriter stringWrite = new System.IO.StringWriter();
System.Web.UI.HtmlTextWriter htmlWrite = new HtmlTextWriter(stringWrite);
DataView.RenderControl(htmlWrite);
Response.Write("<meta http-equiv=Content-Type content='text/html; charset=utf-8'>");
Response.Write(stringWrite.ToString());
Response.End();
방법을 찾다보니 Head 부분에 meta 태그를 넣어보란 말이있어서 테스트해봤더니 문제가 해결되었다 ;
// GridView에 값을 바인딩한다.
DataView.DataBind();
Response.AddHeader("content-disposition", "attachment;filename=excel.xls");
Response.Charset = "";
Response.ContentType = "application/vnd.ms-excel";
System.IO.StringWriter stringWrite = new System.IO.StringWriter();
System.Web.UI.HtmlTextWriter htmlWrite = new HtmlTextWriter(stringWrite);
DataView.RenderControl(htmlWrite);
Response.Write("<html><head><meta http-equiv=Content-Type content='text/html; charset=utf-8'></head><body>");
Response.Write(stringWrite.ToString());
Response.Write("</body></html>");
Response.End();
하지만 style 을 명시한 부분에 backcolor나 bordercolor는 여전히 OpenOffice에는 적용이 되지 않는다.
'ASP.NET' 카테고리의 다른 글
ObjectDataSource 운영시 PostBack 일어날 시 DataBind 도 같이 일어나는 현상 (0) | 2013.10.21 |
---|---|
Calendar 컨트롤 간단히 특정 요일 글자 색상 변경 해보기 (0) | 2013.10.11 |
ASP.NET Gridview 컨트롤의 DataKeyNames의 활용 (0) | 2013.02.06 |
ASP.NET 웹 페이지 로드시 캐쉬가 처리 되지 않도록 처리.. (0) | 2013.02.01 |
ObjectDataSource 에서 Select Filter 사용 해보기 (0) | 2013.02.01 |