程序生成Excel后,用Windows.open下载,有时候发现重新生成文件后下载的还是之前的旧的,大家有没有遇到过这种情况,如果解决?
谢谢!

解决方案 »

  1.   

    应该是,在url中加个随机数的参数吧
    "XXX.aspx?rand="+new Random().Next()
      

  2.   

    重新生成的Excel还是原来的名字吗?
      

  3.   

    是的,同一个名字
    windows.open(文件路径)
      

  4.   

    js加随机数的参数:
    ....XXX.aspx?rand="+Math.random();
      

  5.   

    你生成excel时 文件名不要重复,最好是取年月日十分秒再加四位随机数 保证不会重复,这是我以前写的一个你参考下
     /// <summary>
            /// excel导出数据
            /// </summary>
            /// <param name="sender"></param>
            /// <param name="e"></param>
            protected void Btn_OnExcel(object sender, string e)
            {
                string[] ss = Request.QueryString[0].Split(',');
                this.WMSDataList1.strWhere = e;
                Model.RPTModel rptModel = dal.GetModel(" rptnam='" + ss[0] + "' and rptcod='导出'");
                DateTime dt = DateTime.Now;
                string Time = string.Format("{0:yyyyMMddHHmmss}", dt);
                Random ro = new Random();
                string rd = Convert.ToString(ro.Next(1000));
                string rptnam = rptModel.RPTNAM;
                string filename = rptnam + Time + rd;//生成Excel文件名;
                string Path = Server.MapPath("/") + "ExcelReportRecords\\";//生成路径
                if (rptModel.RPTTYP == "存储过程")
                {
                    dal.DatatableTOExcel(rptModel.RPTSQL, filename, Path, this.WMSDataList1.strWhere);//rptModel.RPTSQL是sql语句,this.WMSDataList1.strWhere是sql条件
                }
                else if (rptModel.RPTTYP == "SQL语句")
                {
                    string sqlSQL = "select " + field + " " + SQL + " where 1=1 " + this.WMSDataList1.strWhere;//拼接的sql,传递给存储过程
                    dal.DatatableTOExcel(sqlSQL, filename, Path);   
                }
                Response.Write("<script>window.showModalDialog('/reportexcel.aspx?link=" + Server.UrlEncode(filename) + "','newwindow','toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=no,resizable=yes,width=300,height=50,left=80,top=40')</script>");
            }
      

  6.   

    这是reportexcel.aspx里代码
    //前台
    <form id="form1" runat="server">
        <div style=" font-size:14px; color:Red; font-family:宋体;">
        <%=strlink %>
        </div>
        </form>
    //后台
     public string strlink = "";
            protected void Page_Load(object sender, EventArgs e)
            {
                if (!IsPostBack)
                {
                    strlink = "<a href='/ExcelReportRecords/" + Server.UrlDecode(Convert.ToString(Request["link"])) + ".xls' >点击下载excel文件</a>";
                }
            }
      

  7.   

    <a href='/ExcelReportRecords/" + Server.UrlDecode(Convert.ToString(Request["link"])) + ".xls' >点击下载excel文件</a>链接后面加随机数。