怎样把“GridView导出Excel”或是直接打印???怎样实现,思路和实例?以前做过,但是忘了。

解决方案 »

  1.   

    http://www.cnblogs.com/stswordman/archive/2006/08/24/485641.html
      

  2.   

    将DataTable数据导出到EXCEL
    http://topic.csdn.net/u/20110711/10/fe699cf8-12e2-4963-8d6a-625d488f5d74.html
      

  3.   

    /// <summary> 
        /// 将DataTable数据导出到EXCEL,调用该方法后自动返回可下载的文件流 
        /// </summary> 
        /// <param name="dtData">要导出的数据源</param> 
        public static void DataTable1Excel(System.Data.DataTable dtData)
        {
            System.Web.UI.WebControls.GridView gvExport = null;
            // 当前对话 
            System.Web.HttpContext curContext = System.Web.HttpContext.Current;
            // IO用于导出并返回excel文件 
            System.IO.StringWriter strWriter = null;
            System.Web.UI.HtmlTextWriter htmlWriter = null;        if (dtData != null)
            {
                // 设置编码和附件格式 
                curContext.Response.ContentType = "application/vnd.ms-excel";
                curContext.Response.ContentEncoding = System.Text.Encoding.GetEncoding("gb2312");
                curContext.Response.Charset = "utf-8";            // 导出excel文件 
                strWriter = new System.IO.StringWriter();
                htmlWriter = new System.Web.UI.HtmlTextWriter(strWriter);
                // 为了解决gvData中可能进行了分页的情况,需要重新定义一个无分页的GridView 
                gvExport = new System.Web.UI.WebControls.GridView();
                gvExport.DataSource = dtData.DefaultView;
                gvExport.AllowPaging = false;
                gvExport.DataBind();            // 返回客户端 
                gvExport.RenderControl(htmlWriter);
                curContext.Response.Write("<meta http-equiv=\"Content-Type\" content=\"text/html; charset=gb2312\" />" + strWriter.ToString());
                curContext.Response.End();
            }
        }
          /// <summary>
        /// 直接输出Excel
        /// </summary>
        /// <param name="dtData"></param>
        public static void DataTable2Excel(System.Data.DataTable dtData)
        {
              System.Web.UI.WebControls.DataGrid dgExport = null;
          // 当前对话
          System.Web.HttpContext curContext = System.Web.HttpContext.Current;
          // IO用于导出并返回excel文件
          System.IO.StringWriter strWriter = null;
          System.Web.UI.HtmlTextWriter htmlWriter = null;      if (dtData != null)
          {
            // 设置编码和附件格式
            curContext.Response.ContentType = "application/vnd.ms-excel";
            curContext.Response.ContentEncoding =System.Text.Encoding.UTF8;
            curContext.Response.Charset = "";
                     
            // 导出excel文件
            strWriter = new System.IO.StringWriter();
            htmlWriter = new System.Web.UI.HtmlTextWriter(strWriter);        // 为了解决dgData中可能进行了分页的情况,需要重新定义一个无分页的DataGrid
            dgExport = new System.Web.UI.WebControls.DataGrid();          
            dgExport.DataSource = dtData.DefaultView;
            dgExport.AllowPaging = false;
            dgExport.DataBind();        // 返回客户端
            dgExport.RenderControl(htmlWriter);  
            curContext.Response.Write(strWriter.ToString());
            curContext.Response.End();
          }
        }
      

  4.   

    http://www.cnblogs.com/stswordman/archive/2006/08/24/485641.html
      

  5.   

    给你个例子
    protected void Button1_Click(object sender, EventArgs e)
        {
            Response.Clear();
            Response.ContentType = "application/vnd.ms-excel";
            Response.Charset = "GBK";  
            Page.EnableViewState = false;
            Response.ContentEncoding=System.Text.Encoding.GetEncoding("GB2312");//使输出的中文不乱码
            Response.AppendHeader("Content-Disposition", "attachment;filename=baobiao.xls");
            Response.Write("<html><head><meta http-equiv=Content-Type content=\"text/html;charset=GB2312\"><title>Copyright by SDU</title></head><body><form  runat=server id=b1>");
            Response.Write("<table><tr><td>车牌号</td><td>应收款</td><td>扣款费</td><td>实收款</td></tr>");
            Response.Write(lbltable.Text);
            Response.Write("</table></form></body></html>");
            Response.End();
    }
      

  6.   

    分页GridView导出到Excel代码:        public override void VerifyRenderingInServerForm(Control control)
            {
                //base.VerifyRenderingInServerForm(control);
                //導出 Excel 需此方法支持
            }
            protected void btnExport_Click(object sender, EventArgs e)
            {
                Response.Clear();
                Response.Buffer = true;
                Response.ContentEncoding = System.Text.Encoding.GetEncoding("utf-8");
                Response.Charset = "utf-8";
                Response.AppendHeader("Content-Disposition", "attachment;filename=Asset.xls");
                Response.ContentType = "applications-excel";
                System.Globalization.CultureInfo Cif = new System.Globalization.CultureInfo("ZH-CN", true);
                System.IO.StringWriter strWriter = new System.IO.StringWriter(Cif);
                System.Web.UI.HtmlTextWriter htmlWriter = new HtmlTextWriter(strWriter);
                GridView1.AllowPaging = false;
                BindGridView1();
                GridView1.RenderControl(htmlWriter);
                Response.Write(strWriter.GetStringBuilder());
                Response.End();
                GridView1.AllowPaging = true;
                BindGridView1();   // GridView绑定数据的方法
            }
      

  7.   

    导出excel网上事例很多.
    关键是打印
    其实就是先导出excel然后调用excel打印功能打印!