2011-10-21 4 views
1

데이터 테이블을 Excel로 내보내는이 기사를 읽었습니다. 잘 작동했습니다.DataTable을 Excel 파일로 내보내기 asp.net

dt = city.GetAllCity();//your datatable 
string attachment = "attachment; filename=city.xls"; 
Response.ClearContent(); 
Response.AddHeader("content-disposition", attachment); 
Response.ContentType = "application/vnd.ms-excel"; 
string tab = ""; 
foreach (DataColumn dc in dt.Columns) 
{ 
    Response.Write(tab + dc.ColumnName); 
    tab = "\t"; 
} 
Response.Write("\n"); 
int i; 
foreach (DataRow dr in dt.Rows) 
{ 
    tab = ""; 
    for (i = 0; i < dt.Columns.Count; i++) 
    { 
     Response.Write(tab + dr[i].ToString()); 
     tab = "\t"; 
    } 
    Response.Write("\n"); 
} 
Response.End(); 

하지만이 코드를 사용할 때 한국어 문자가 모두 끊어집니다 :

Export DataTable to Excel File

는하고 코드는 다음과 같습니다. 누구든지이 문제를 해결할 수 있습니까?

+0

그것은 Excel에서 문자를 표시하는 유니 코드의 필요성을 인식하지으로 다운되었을 수 있습니다. 그것을 나타 내기 위해서는 헤더가 필요할 것입니다. –

+0

어떤 헤더를 표시해야합니까? –

+0

ContentType charset http://en.wikipedia.org/wiki/List_of_HTTP_header_fields#Responses –

답변

2

나는 터키어 용 windows-1254 문자 집합을 사용합니다. 나는 KS_X_1001이 당신을 위해 일할 것 같아요. 더 세트 는 : http://en.wikipedia.org/wiki/Character_encoding

Response.ContentEncoding = System.Text.Encoding.GetEncoding("windows-1254"); 
Response.Charset = "windows-1254"; 
관련 문제