Как установить кодировку для персидского символа при экспорте вида сетки в Excel в ASP.NET?
Я использую этот код для преобразования вида сетки в Excel:
Response.Clear();
Response.Buffer = true;
Response.AddHeader("content-disposition", "attachment;filename=GridViewExport.xls");
Response.Charset = "";
Response.ContentType = "application/vnd.ms-excel";
using (StringWriter sw = new StringWriter())
{
HtmlTextWriter hw = new HtmlTextWriter(sw);
Page.ResponseEncoding = "UTF-8";// System.Text.Encoding.UTF8;
Response.ContentEncoding = System.Text.Encoding.UTF8;
Response.HeaderEncoding = System.Text.Encoding.UTF8;
//To Export all pages
gvProduct.AllowPaging = false;
gvProduct.HeaderRow.BackColor = Color.White;
foreach (TableCell cell in gvProduct.HeaderRow.Cells)
{
cell.BackColor = gvProduct.HeaderStyle.BackColor;
}
foreach (GridViewRow row in gvProduct.Rows)
{
row.BackColor = Color.White;
foreach (TableCell cell in row.Cells)
{
if (row.RowIndex % 2 == 0)
{
cell.BackColor = gvProduct.AlternatingRowStyle.BackColor;
}
else
{
cell.BackColor = gvProduct.RowStyle.BackColor;
}
cell.CssClass = "textmode";
}
}
gvProduct.RenderControl(hw);
//style to format numbers to string
string style = @"<style> .textmode { } </style>";
Response.Write(style);
var a = Response.Output.Encoding;
Response.Output.Write(sw.ToString());
Response.Flush();
Response.End();
Но когда мой вид сетки содержит персидский символ после экспорта, это не правильно. Я думаю, что при экспорте я должен установить кодировку. Помогите мне, пожалуйста. Благодарю.
1 ответ
Решение
Попробуй это
Response.Clear();
Response.Buffer = true;
Response.AddHeader("content-disposition",
"attachment;filename=Export.xls");
Response.Charset = "";
Response.ContentType = "application/vnd.ms-excel";
StringWriter sw = new StringWriter();
HtmlTextWriter hw = new HtmlTextWriter(sw);
GridView1.AllowPaging = false;
GridView1.DataBind();
GridView1.RenderControl(hw);
//style to format numbers to string
string style = @"<style> .textmode { mso-number-format:\@; } </style> <meta http-equiv='Content-Type' content='text/html; charset=UTF-8'>";
Response.Write(style);
Response.Output.Write(sw.ToString());
Response.Flush();
Response.End();`