怎么将分页的GridView数据导入到Excel中
GridView是分页的

解决方案 »

  1.   

    你是想导多个 sheet ?
      

  2.   

    那一页导入一个sheet如何实现啊?
      

  3.   


    //只导当前这一页
    protected void Button2_Click(object sender, EventArgs e)
        {        Response.AppendHeader("Content-Disposition", "attachment;filename=FileName.xls");
            Response.ContentEncoding = Encoding.UTF7;        StringWriter oStringWriter = new StringWriter();
            HtmlTextWriter oHtmlTextWriter = new HtmlTextWriter(oStringWriter);        GridView2.RenderControl(oHtmlTextWriter);
         
            
            Response.Write(oStringWriter.ToString());
            Response.Flush();
            Response.End();
        }    //必须加这个方法,要不然会引发:类型“GridView”的控件“GridView1”必须放在具有 runat=server 的窗体标记内... 异常。
        public override void VerifyRenderingInServerForm(Control control)
        {
            //base.VerifyRenderingInServerForm(control);
        }
      

  4.   

    在页面的page指令中加入
    <%@ Page Language="C#" AutoEventWireup="true" CodeFile="BillOutOrder.aspx.cs" Inherits="Company_BillOutOrder" EnableEventValidation="false"%>
      

  5.   

    另一种思路:直接操作你的gridview的数据源去生成Excel。大小自己控制
      

  6.   

    方法一:
    读取所有数据,字符串拼接table,然后利用我刚才说的方法导。方法二:
    利用Sql语句导  :
    exec Emp..xp_cmdshell 'bcp "select * from Emp.dbo.EB" queryout f://a.xls -c -S wjj -U wjj -P 000150'导到服务上,然后下载。
      

  7.   

     直接这样写就可以了
    Response.Clear();
            Page.Response.Buffer = true;
            Response.Charset = "gb2312";
            string strFileName = "FileName.xls";
            Response.AddHeader("content-disposition", "attachment;filename=" + HttpUtility.UrlEncode         (strFileName, System.Text.Encoding.UTF8));
            Response.ContentEncoding = System.Text.Encoding.UTF8;        System.IO.StringWriter stringWrite = new System.IO.StringWriter();
            System.Web.UI.HtmlTextWriter htmlWrite = new HtmlTextWriter(stringWrite);
            gvIndex.AllowPaging = false;
            gvIndex.ShowFooter = true;
            NewBind();
            gvIndex.RenderControl(htmlWrite);
            Response.Write(stringWrite.ToString());
            Response.End();
            gvIndex.AllowPaging = true;
            NewBind();
      

  8.   

    把数据放到DataTable中,在从DataTable导出到excel吧
      

  9.   


    Response.AppendHeader("Content-Disposition", "attachment;filename=FileName.xls");
            Response.ContentEncoding = Encoding.UTF7;
            Response.Write("<table>.....</table>");
            Response.Flush();
            Response.End();
      

  10.   

    隐藏一个同样的gridview,不分页的,打印它的就可以了啊
      

  11.   

    Response.Clear(); 
            Page.Response.Buffer = true; 
            Response.Charset = "gb2312"; 
            string strFileName = "FileName.xls"; 
            Response.AddHeader("content-disposition", "attachment;filename=" + HttpUtility.UrlEncode        (strFileName, System.Text.Encoding.UTF8)); 
            Response.ContentEncoding = System.Text.Encoding.UTF8;         System.IO.StringWriter stringWrite = new System.IO.StringWriter(); 
            System.Web.UI.HtmlTextWriter htmlWrite = new HtmlTextWriter(stringWrite); 
            gvIndex.AllowPaging = false; 
            gvIndex.ShowFooter = true; 
            NewBind(); 
            gvIndex.RenderControl(htmlWrite); 
            Response.Write(stringWrite.ToString()); 
            Response.End(); 
            gvIndex.AllowPaging = true; 
            NewBind(); 
    好像还要指定路径吧
      

  12.   

    隐藏一个同样的gridview,不分页的,打印它的就可以了啊
      

  13.   

    谢谢大家  解决了
    方法是 将数据放到一个DateTable中
    在将DateTable数据导出到Excel