我下面的代码能导出到excle但是导出的excle路径不能自己选择,请问这个怎么修改?
就像我们弹出一个保存界面,选择保存路径,然后保存
请问下面怎么处理???
  
      string filename;
        ReportDocument CrReportDocumnet = new ReportDocument();
        CrReportDocumnet.Load(Server.MapPath("GPSStatisticsReport.rpt"));
        
        filename = Server.MapPath("asp.xls");
         
        string date = txtDate.Value;
        DataTable dt = null;
        dt = GetData(date);        GPSStatisticsReport_DataSet dso = new GPSStatisticsReport_DataSet();
        dso.Tables.Clear();
        dt.TableName = "GPSStatisticsReport_DataTable";
        dso.Tables.Add(dt.Copy());
        GPSReportSource.ReportDocument.SetDataSource(dso);
        GPSReportSource.DataBind();        CrReportDocumnet.SetDataSource(dso);
        DiskFileDestinationOptions CrDiskFileDestinationOptions = new DiskFileDestinationOptions();
        ExportOptions CrExportOptions = new ExportOptions();
        CrDiskFileDestinationOptions.DiskFileName = filename;
        CrExportOptions = CrReportDocumnet.ExportOptions;
        CrExportOptions.ExportDestinationOptions = CrDiskFileDestinationOptions;
        CrExportOptions.ExportDestinationType = ExportDestinationType.DiskFile;
        CrExportOptions.ExportFormatType = ExportFormatType.Excel;
        CrReportDocumnet.Export();

解决方案 »

  1.   

    CrDiskFileDestinationOptions.DiskFileName = filename; 这一行注释掉
      

  2.   

    刚才没咋清楚应该是这样的。。你在按导出按钮的时候,先弹出一个对话框之类的界面,让用户输入或路径
    然后接收到这个路径后再往下走
    filename = 从前置界面上传过来的路径;上一个帖子里的那句不用注释掉
      

  3.   

    弹出框可以选择excle保存的路径,点保存操作,但是这个弹出框怎么实现呢?
      

  4.   


    你的这个导出,是导出到服务器上的,对用户来说,选路径也没有任何意义。
    而且用asp.net这个也确实实现不了保存到用户机器上指定位置。如果你是要推到用户机器上,那么你就在现有代码最后面加一句
    Response.Redirect(filename);是不是这个意思?
      

  5.   


    这样这个excel会弹出来,让用户自己选路径的
      

  6.   

    saveFileDailoge 不行,我是web。
    我想可以用文件流的方式到客户端,这个怎么处理?
      

  7.   

    FileStream myFile = File.OpenRead(filename);
            byte[] fileCont=new byte[myFile.Length];
            myFile.Read(fileCont,0,(int)myFile.Length);
            Page.Response.Clear();
            Page.Response.AddHeader("Content-Disposition","attachment;filename="+HttpUtility.UrlEncode(filename,System.Text.Encoding.UTF8));
            Page.Response.AddHeader("Content-Length", myFile.Length.ToString());
            Page.Response.BinaryWrite(fileCont);
    我这样加了就可以了
      

  8.   

    对,写给客户端就可以了Response.Redirect(filename);
     
    本来是想达到这个效果就可以,只是有的可以,有的不可以。呵呵。