asp.net页面导出Excel,显示超时失败
但在数据库执行相关的存储过程不到3秒就可以执行完毕,输出行数1300多行导出的函数如下,大家看为什么会慢的到超时呢,是否有更好的办法:
public static void SaveAsFile(System.Data.DataTable dt, string fileName)
{
System.Web.UI.WebControls.GridView gv = new GridView();
gv.DataSource = dt.DefaultView;
gv.AllowPaging = false;
gv.HeaderStyle.BackColor = System.Drawing.Color.Green;
gv.HeaderStyle.HorizontalAlign = HorizontalAlign.Center;
gv.HeaderStyle.Font.Bold = true;
gv.DataBind();
try
{
System.Web.HttpContext.Current.Response.Clear();
System.Web.HttpContext.Current.Response.Buffer = true;
System.Web.HttpContext.Current.Response.Charset = "GB2312"; //设置了类型为中文防止乱码的出现 System.Web.HttpContext.Current.Response.ContentEncoding = System.Text.Encoding.GetEncoding("GB2312");//设置输出流为简体中文
System.Web.HttpContext.Current.Response.AppendHeader("Content-Disposition", "attachment;filename=" + System.Web.HttpUtility.UrlEncode(fileName, System.Text.Encoding.UTF8) + ".xls"); //定义输出文件和文件名 System.Web.HttpContext.Current.Response.ContentType = "application/ms-excel";//设置输出文件类型为excel文件。
gv.EnableViewState = false;
System.Globalization.CultureInfo myCItrad = new System.Globalization.CultureInfo("ZH-CN", true);
System.IO.StringWriter oStringWriter = new System.IO.StringWriter(myCItrad);
System.Web.UI.HtmlTextWriter oHtmlTextWriter = new System.Web.UI.HtmlTextWriter(oStringWriter);
gv.RenderControl(oHtmlTextWriter);
System.Web.HttpContext.Current.Response.Write(oStringWriter.ToString());
//HttpContext.Current.ApplicationInstance.CompleteRequest();
System.Web.HttpContext.Current.Response.End();
}
catch (System.Exception ee)
{
string ddd = ee.Message;
}
}
但在数据库执行相关的存储过程不到3秒就可以执行完毕,输出行数1300多行导出的函数如下,大家看为什么会慢的到超时呢,是否有更好的办法:
public static void SaveAsFile(System.Data.DataTable dt, string fileName)
{
System.Web.UI.WebControls.GridView gv = new GridView();
gv.DataSource = dt.DefaultView;
gv.AllowPaging = false;
gv.HeaderStyle.BackColor = System.Drawing.Color.Green;
gv.HeaderStyle.HorizontalAlign = HorizontalAlign.Center;
gv.HeaderStyle.Font.Bold = true;
gv.DataBind();
try
{
System.Web.HttpContext.Current.Response.Clear();
System.Web.HttpContext.Current.Response.Buffer = true;
System.Web.HttpContext.Current.Response.Charset = "GB2312"; //设置了类型为中文防止乱码的出现 System.Web.HttpContext.Current.Response.ContentEncoding = System.Text.Encoding.GetEncoding("GB2312");//设置输出流为简体中文
System.Web.HttpContext.Current.Response.AppendHeader("Content-Disposition", "attachment;filename=" + System.Web.HttpUtility.UrlEncode(fileName, System.Text.Encoding.UTF8) + ".xls"); //定义输出文件和文件名 System.Web.HttpContext.Current.Response.ContentType = "application/ms-excel";//设置输出文件类型为excel文件。
gv.EnableViewState = false;
System.Globalization.CultureInfo myCItrad = new System.Globalization.CultureInfo("ZH-CN", true);
System.IO.StringWriter oStringWriter = new System.IO.StringWriter(myCItrad);
System.Web.UI.HtmlTextWriter oHtmlTextWriter = new System.Web.UI.HtmlTextWriter(oStringWriter);
gv.RenderControl(oHtmlTextWriter);
System.Web.HttpContext.Current.Response.Write(oStringWriter.ToString());
//HttpContext.Current.ApplicationInstance.CompleteRequest();
System.Web.HttpContext.Current.Response.End();
}
catch (System.Exception ee)
{
string ddd = ee.Message;
}
}
解决方案 »
- 怎么显示上传文件的进度条
- SQL2005ReportSevices很无奈的问题,SQL语句太长而被截断了...咋办?
- 图片上传问题 FileSteam 本地和服务器
- 弹出窗口仅在按钮点击时弹出,在刷新或其他状况下不弹出
- 有关获取客户端IP的问题,真头痛. 已取得IP但IP不对。
- 100分求助:怎样在web自定义控件中使用AJAX回调数据,在线急等!解决马上给分
- 有关建立论坛安全性问题。
- 如何可得到这样效果?
- asp.net读取cookies问题,分不多了
- 为什么我已经用了ClOB的数据类型了,怎么插入字符串的时候,还报字符过长的错误?长度只有4万不到
- 在服务器端有什么方法可以判断客户端的浏览器是否禁用了JavaScript?
- 取数据库中的第100到第200之间的数据
数据保存到cache等中