日期:2014-05-18 浏览次数:20425 次
//输出导出结果到客户端 HttpContext.Current.Response.ContentType = "application/ms-excel"; HttpContext.Current.Response.AppendHeader("Content-Disposition", "attachment;filename=" + HttpContext.Current.Server.UrlEncode(sheetName) + ".xls"); HttpContext.Current.Response.BinaryWrite(File.ReadAllBytes(excelPath)); if (dt.Rows.Count > 10000) HttpContext.Current.Response.Write("<script language=\"javascript\" type=\"text/javascript\">EndRequest2();</script>"); //删除创建的临时文件 File.Delete(excelPath);
------解决方案--------------------
你这是吧页面上的table组成的html导出成excel 么,如果这样的话是不是页面的html转换到流文件时候html标签出了问题呢?
------解决方案--------------------
先参考这个, 我找下我上次解决方法的代码
private void Export(GridView _gv, string FileName)
{
Response.Clear();
Response.Buffer = true;
Response.Charset = "GB2312";
Response.Write("<meta http-equiv=Content-Type content=text/html;charset=GB2312>");
Response.AppendHeader("Content-Disposition", "attachment;filename=" + HttpUtility.UrlEncode(FileName, Encoding.UTF8).ToString());//FileName.xls");
Response.ContentEncoding = System.Text.Encoding.GetEncoding("GB2312");
Response.ContentType = "application/vnd.xls";//设置输出文件类型为excel文件。
System.IO.StringWriter oStringWriter = new System.IO.StringWriter();
System.Web.UI.HtmlTextWriter oHtmlTextWriter = new System.Web.UI.HtmlTextWriter(oStringWriter);
_gv.RenderControl(oHtmlTextWriter);
Response.Output.Write(oStringWriter.ToString());
Response.Flush();
Response.End();
}
public override void VerifyRenderingInServerForm(Control control)
{
}
------------------------
public void ToExcel()//整个GRIDVIEW导出到EXCEL
{
string filename="网银终端" + DateTime.Now.ToString("yyyyMMdd") + ".xls";
string style = @"<style> .text { mso-number-format:/@; } </script> "; //解决第一位字符为零时不显示的问题
this.GridView1.AllowPaging = false;
this.GridView1.DataBind();
filename = HttpUtility.UrlEncode(filename, System.Text.Encoding.UTF8);//解决导出EXCEL时乱码的问题
Response.ClearContent;
Response.ContentEncoding = System.Text.Encoding.GetEncoding("GB2312");
Response.ContentType = "applicat