求助求助。导出execl文件进度条的问题。
我要导出一个比较大的文件,由于等待的时间比较长,可能会出现假死的情况,现在想请大家提供2种方法,一种是实时进度条,一种是假的进度条。
文件结构如下:
Default2.aspx页面: <a href="ExportAddressBook.aspx?type=S" target="_blank" style="border:0" >导出通讯录</a>
点击本页面的这个超链接将弹出页面ExportAddressBook.aspx
ExportAddressBook.aspx页面源代码:
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="ExportAddressBook.aspx.cs" Inherits="ExportAddressBook" %>
<%@ Register Assembly="Coolite.Ext.Web" Namespace="Coolite.Ext.Web" TagPrefix="ext" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
</head>
<body>
<form id="form1" runat="server" >
<div >
<ext:ScriptManager ID="ScriptManager1" runat="server">
</ext:ScriptManager>
<%-- <div id="loading" >
<img alt="我是" src="images/loading.gif" />
</div>--%>
</div>
</form>
</body>
</html>
ExportAddressBook.aspx.cs源代码:
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
string type = "";
if (Request.QueryString["type"] != null)
{
type = Request.QueryString["type"].ToString();
}
if (type == "S")
{
DataSet ds = new DataSet();
ds = dp(); //这个是dataset
if (ds.Tables[0].Rows.Count > 0)
{
DataSet2Excel(ds); //这个是导出数据用的。
}
}
}
}
在导出数据中使用的是下面的方法:
string fileURL = string.Empty;
//调用方法将文件写入服务器,并获取全部路径
fileURL = DataView2ExcelBySheet(dv1, dv2, dv3, dv4, dv5, dv6, fileName, maxRow);
//获取路径后从服务器下载文件至本地
HttpContext curContext = System.Web.HttpContext.Current;
curContext.Response.Clear();
curContext.Response.ContentType = "application/vnd.ms-excel";
curContext.Response.ContentEncoding = System.Text.Encoding.Default;
//curContext.Response.ContentEncoding = System.Text.Encoding.GetEncoding("gb2312");
//curContext.Response.AppendHeader("Content-Disposition", ("attachment;filename=" + fileName));
curContext.Response.AddHeader("Content-Disposition", "attachment; filename=" + System.Web.HttpUtility.UrlEncode(fileName, System.Text.Encoding.UTF8) + ".xls");
curContext.Response.Charset = "gb2312";
curContext.Response.WriteFile(fileURL);
curContext.Response.Flush();
curContext.Response.End();
我需要的是在做pageload事件前面加入一个加一个进度条。大家有什么好的解决方案。
------解决方案--------------------用个图片做假的进度条省空间
------解决方案--------------------
弹出iframe或DIV显示图片,导出成功隐藏
------解决方案------------