2011-12-04 4 views
4

필자는 헤더를 사용하여 Excel 테이블을 내보내는 코드를 작성하는 작업을 수행했습니다. 내가 생각 해낸 무엇 내보내기 html 테이블을 사용하여 파일 인코딩

이 같은 서버 측 코드 :

Response.Clear(); 
    Response.AddHeader("content-disposition", "attachment;filename=myexcel.xls"); 
    Response.ContentType = "application/ms-excel"; 
    System.IO.StringWriter sw = new System.IO.StringWriter(); 
    System.Web.UI.HtmlTextWriter hw = new HtmlTextWriter(sw); 
    tbPanel.RenderControl(hw); 
    Response.Write(sw.ToString()); 
    Response.End(); 

그것은 아주 잘 작동하지만 엑셀 파일에 correclty을 표시이 arent 일부 UTF-8 문자 (러시아어)이 있습니다.

내가 할 수있는 아이디어가 있습니까?

Response.Clear(); 
Response.AddHeader("content-disposition","attachment;filename=Test.xls"); 
Response.ContentType = "application/ms-excel"; 
Response.ContentEncoding = System.Text.Encoding.Unicode; 
Response.BinaryWrite(System.Text.Encoding.Unicode.GetPreamble()); 

을 그리고 엑셀 thjere 파일 확장자는 다른 형식을 가지고 있다는 오류가 파일을 여는 동안 경고가를 제외하고 지금은 괜찮 작동합니다 도움

답변

6

변경 다음 코드 :

Response.Clear(); 
Response.AddHeader("content-disposition","attachment;filename=myexcel.xls"); 
Response.ContentType = "application/ms-excel"; 
Response.ContentEncoding = System.Text.Encoding.Unicode; 
Response.BinaryWrite(System.Text.Encoding.Unicode.GetPreamble()); 

System.IO.StringWriter sw = new System.IO.StringWriter(); 
System.Web.UI.HtmlTextWriter hw = new HtmlTextWriter(sw); 

FormView1.RenderControl(hw); 

Response.Write(sw.ToString()); 
Response.End(); 

편집

내 대답을 게시 동안, 나는 당신이 이미 동일한 솔루션을 알아 낸 것을 보았다. 표시되는 오류 메시지는 여기에 설명되어 있습니다 : Excel 2007 Extension Warning On Opening Excel Workbook from a Web Site 그리고 불행히도 해결 방법이 없습니다. 포스트에서

는 :

경고 메시지가 "디자인"하지만의 상호 작용이 행동과 파일을 다시 열 수 IE의 시도를 취소는 미래의 수정에 대한 조사에서 알려진 문제 입니다 .

0

에 대한

덕분에 필자는 덧붙였다. 나는 그것을 없앨 수 있을까요?

+0

방금 ​​같은 답변을 게시했지만 너무 늦었습니다. 다행 이군. 표시되는 오류는 다음 페이지에서 설명합니다. http://blogs.msdn.com/b/vsofficedeveloper/archive/2008/03/11/excel-2007-extension-warning.aspx –

관련 문제