我已将字符串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标记,我可能知道我的代码有什么问题吗?请帮助!!
答案 0 :(得分:0)
您需要将文件写为二进制文件,使用TransmitFile
或BinaryWrite
方法,只需使用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。