日期:2014-05-18  浏览次数:20975 次

求助求助。导出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显示图片,导出成功隐藏
------解决方案------------