将Datagrid数据导出到Excel C#

时间:2013-07-06 09:12:25

标签: c# .net

我已将字符串Array绑定到Datagrid,然后我需要通过在客户端计算机中自动保存文件将数据导出到excel文件。 以下是我使用的代码。

string fileName = "attachment;filename= DetailReport.xlsx";
        Response.Clear();
        Response.AddHeader("content-disposition", fileName);
        Response.Charset = "";
        Response.Cache.SetCacheability(HttpCacheability.NoCache);
        Response.ContentType = "application/vnd.ms-excel";
        System.IO.StringWriter stringWrite = new System.IO.StringWriter();
        System.Web.UI.HtmlTextWriter htmlWrite = new HtmlTextWriter(stringWrite);
        grdExcel.RenderControl(htmlWrite);
        Response.Output.Write(stringWrite.ToString());
        Response.Flush();
        Response.End();

我成功导出文件并保存在客户端计算机中,但文件中的内容包含所有HTML标记,我可能知道我的代码有什么问题吗?请帮助!!

3 个答案:

答案 0 :(得分:0)

您需要将文件写为二进制文件,使用TransmitFileBinaryWrite方法,只需使用HtmlTextWriter就无济于事。

请参阅here

答案 1 :(得分:0)

这可能会有所帮助!

        Response.Buffer = true;
        Response.ContentType = "application/text";
        Response.AppendHeader("Content-Disposition", "attachment; filename=file1.xls");
        Response.TransmitFile(fileName);
        Response.Flush();
        Response.End();

答案 2 :(得分:0)

使用Response.Write而不是Response.Output.Write。