Как установить кодировку для персидского символа при экспорте вида сетки в Excel в ASP.NET?

1

Я использую этот код для преобразования вида сетки в 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();

Но когда мой грид-вид содержит персидский символ после экспорта, это не правильно. Я думаю, что при экспорте я должен установить кодировку. Пожалуйста помогите. Благодарю.

Теги:
export-to-excel

1 ответ

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();'

Ещё вопросы

Сообщество Overcoder
Наверх
Меню