点击按钮生成Excel

来源:互联网 发布:天津淘宝模特招聘网 编辑:程序博客网 时间:2024/04/29 00:33

先在前端放置一个隐藏的GridView,给其绑定数据。

<div style="display: none">

      <asp:GridView ID="Gv_Detail" runat="server" Width="1260px" AutoGenerateColumns="False" BackColor="White" BorderStyle="None" BorderWidth="1px" HeaderStyle-Height="60px" HeaderStyle-Font-Size="10.0pt" ShowFooter="true" OnRowDataBound="Gv_Detail_RowDataBound">
               <Columns>
                      <asp:TemplateField HeaderText="收款单位" ItemStyle-HorizontalAlign="Center">
                               <ItemTemplate>
                                       <asp:Label ID="lb_EmployeeName" runat="server" Text='<%# DataBinder.Eval(Container.DataItem, "ReceiveUnit").ToString()%>'></asp:Label>
                                                </ItemTemplate>
                                                        <ItemStyle Height="30px" Width="200px" />
                                                 </asp:TemplateField>
                                        <asp:TemplateField HeaderText="项目名称" ItemStyle-HorizontalAlign="Center">
                                <ItemTemplate>
                                        <asp:Label ID="lb_ProjectCaption" runat="server" Text='<%# DataBinder.Eval(Container.DataItem, "Project").ToString()%>'></asp:Label>
                                </ItemTemplate>
              </Columns>
             <HeaderStyle Font-Bold="True" />
       </asp:GridView>

</div>
 protected void BindData_Gv_Detail()        {            DataTable dt = new DataTable();            string str = ViewState["strWhere"].ToString();            dt = b_performanceBond.GetList_InformationQuery(dropListBondType.SelectedValue, str, 0, 0).Tables[0];            Gv_Detail.DataSource = dt;            Gv_Detail.DataBind();        }

  //导出Excel
        protected void btnExport_Click(object sender, EventArgs e)
        {
            System.Web.HttpContext curContext = System.Web.HttpContext.Current;
            System.IO.StringWriter strWriter = null;
            System.Web.UI.HtmlTextWriter htmlWriter = null;
            HttpContext.Current.Response.Clear();
            HttpContext.Current.Response.Buffer = true;
            HttpContext.Current.Response.AddHeader("content-disposition", string.Format("attachment; filename={0}.xls", Server.UrlEncode("" + DateTime.Now.ToString("yyyyMMdd") + "保证金信息统计")));
            curContext.Response.ContentType = "application/vnd.ms-excel"; //设置输出文件类型为xls文件        
            curContext.Response.ContentEncoding = System.Text.Encoding.GetEncoding("utf-8");
            curContext.Response.Charset = "";


            strWriter = new System.IO.StringWriter();
            htmlWriter = new System.Web.UI.HtmlTextWriter(strWriter);


            this.Gv_Detail.RenderControl(htmlWriter);
            //设置换行  <br/>是html的换行样式替换成<br style='mso-data-placement:same-cell;'/> EXCEL换行
            curContext.Response.Write(strWriter.ToString().Replace("<br/>", "<br style='mso-data-placement:same-cell;'/> "));
            curContext.Response.End();
        }

//一定要进行重载,否则报错
        public override void VerifyRenderingInServerForm(Control control)
        {
        }

0 0