我想实现不通过reportview控件,直接点击button,将报表以excel形式导出。
好像需要用到sqlserver的webservices,请坐过的朋友帮帮忙。我已经实现了通过reportview的render方法导出,但是不知道如何不通过reportview直接导出。在网上查了一下,相关的资料不多。提供相关链接的朋友也欢迎。

解决方案 »

  1.   

    dataset抓資料直接生成excel嗎?
      

  2.   

    从reportview直接到处到Excel
    这样不行吗?前台
    EnableEventValidation="false"
    #region 导出
        public override void VerifyRenderingInServerForm(Control control)
        {
        }
        protected void BtnPrint_Click(object sender, EventArgs e)
        {
            Response.Clear();
            Response.Buffer = true;
            Response.Charset = "GB2312";
            Response.AppendHeader("Content-Disposition", "attachment;filename=FileName.xls");
            // 如果设置为GetEncoding("GB2312");导出的文件将会出现乱码!!!
            Response.ContentEncoding = System.Text.Encoding.UTF7;
            Response.ContentType = "application/ms-excel";//设置输出文件类型为excel文件。
            System.IO.StringWriter oStringWriter = new System.IO.StringWriter();
            System.Web.UI.HtmlTextWriter oHtmlTextWriter = new System.Web.UI.HtmlTextWriter(oStringWriter);
            this.AfficheGV.RenderControl(oHtmlTextWriter);
            Response.Output.Write(oStringWriter.ToString());
            Response.Flush();
            Response.End();
        }
    #endregion
      

  3.   

    要不就
    1 就把reportview隐藏,还是使用render方法
    2 直接将dateset导出public   void   WriteDSToExcel(DataSet   ds)   
      {   
              string   strFile="";   
              string   path="";                           
              DataTable   dt=ds.Tables[0];   
                
              //文件信息设置   
              strFile=strFile+"LogBackUp";   
              strFile=strFile+DateTime.Now.ToString("yyyyMMddhhmmss");   
              strFile=strFile+".xls";   
              path=Server.MapPath(strFile);   
        
              System.IO.FileStream   fs=new   FileStream(path,System.IO.FileMode.Create,System.IO.FileAccess.Write);   
              StreamWriter   sw=new   StreamWriter(fs,new   System.Text.UnicodeEncoding());   
              //画表头   
              for(int   i=0;i<dt.Columns.Count;i++)   
              {   
                      sw.Write(dt.Columns[i].ColumnName);   
                      sw.Write("\t");   
              }   
              sw.WriteLine("");   
              //画表体   
              for(int   i=0;i<dt.Rows.Count;i++)   
              {   
                      sw.Write(DelQuota(dt.Rows[i]["UserID"].ToString()));   
                      sw.Write("\t");   
                      sw.Write(DelQuota(dt.Rows[i]["UserName"].ToString()));   
                      sw.Write("\t");                                                   
                      sw.Write(DelQuota(dt.Rows[i]["provinceID"].ToString()));   
                      sw.Write("\t");   
                      sw.Write(DelQuota(dt.Rows[i]["cityID"].ToString()));   
                      sw.Write("\t");   
                      sw.Write(DelQuota(dt.Rows[i]["areaID"].ToString()));   
                      sw.Write("\t");   
                      sw.Write(DelQuota(dt.Rows[i]["Enabled"].ToString()));                                   
                      sw.WriteLine("");   
              }   
              sw.Flush();   
              sw.Close();                                   
      }   
      

  4.   

    各位大哥,我的程序是.net的。reportview可以导到dataset里边吗?我刚才自己用我以前的方法实现了。就是直接定义一个reportview,
    然后设置路径,用render生成临时文件,生成临时文件,客户端下载。。虽然是实现了。但是我觉得应该有更直接的方法。
    以前看别人在winform下实现过,但是没有注释,根本看不懂,而且msdn帮助都好少。。
      

  5.   

    dataset,datatable都可以,
    把DelQuota去掉,
    另外引入using System.IO;
    文件就会生成在你的项目的目录里了
    查看path
      

  6.   

    这个就是.net的,
    webform ,使用语言c#
      

  7.   

    >charry0110((晓)风残月)你这个代码,哪部分是从reportview导到dataset的??
      

  8.   

    第一个在
    this.AfficheGV.RenderControl(oHtmlTextWriter);
    第二个直接导Dataset,不用空间
      

  9.   

    this.AfficheGV.RenderControl(oHtmlTextWriter); 
    ----------------------------------------
    RenderControl方法会有很多问题的,我的报表出力之后是带格式和选择参数的。
    直接用这个方法不行。需要使用.ServerReport.Render()方法。
    第二个直接导Dataset,不用空间 
    ---------------------------
    我数据不是从dataset来的。
    不过同样感谢。