2016-03-22 2 views
0

Я экспортирую gridview в excel, я экспортирую файл success.but, но в моем gridview у меня есть специальные символы, такие как (•, «", ', -, _), эти типы символов не могут экспортировать , вместо того места, которое я получаю (â €, â € œ, â €, â € ™). как я могу справиться с этой проблемой. вот мой код для экспорта gridview в excel?Невозможно экспортировать символы в Excel из gridview

Response.Clear(); 
Response.Buffer = true;   
Response.AddHeader("content-disposition", "attachment;filename=demo.xls"); 
Response.Charset = ""; 
Response.ContentType = "application/vnd.ms-excel"; 
StringWriter sw = new StringWriter(); 
HtmlTextWriter hw = new HtmlTextWriter(sw); 
gvDetails.AllowPaging = false; 
gvDetails.DataSource = dt1; 
gvDetails.DataBind(); 
for (int i = 0; i < gvDetails.Rows.Count; i++) 
{ 
    GridViewRow row = gvDetails.Rows[i];    
    row.Attributes.Add("class", "textmode"); 
} 
gvDetails.RenderControl(hw); 
//style to format numbers to string 
string style = @"<style> .textmode { mso-number-format:\@; } </style>"; 
Response.Write(style); 
Response.Output.Write(sw.ToString()); 
Response.Flush(); 
Response.End(); 

ответ

1

Вы должны указать и предоставить информацию кодирования.

Response.ContentEncoding = System.Text.Encoding.Unicode; /*c# uses UTF-16 internally*/
...
Response.BinaryWrite(System.Text.Encoding.Unicode.GetPreamble()); /*Include the UTF-16 header so excel will treat this as UTF-16*/ Response.Output.Write(sw.ToString());
...

Обратите внимание, что это не самое лучшее решение, в идеале вы должны использовать OpenXML или другую библиотеку для экспорта, чтобы преуспеть.

+0

спасибо Abbath .. он работает для меня. –

0

Пожалуйста, измените тип контента ниже,

Response.ContentType = "application/ms-excel"; 
Смежные вопросы