现在的位置: 首页 > 综合 > 正文

datagridview用户控件打入excel

2013年02月10日 ⁄ 综合 ⁄ 共 3621字 ⁄ 字号 评论关闭

前端页面:

<%@ Page Language="C#" EnableEventValidation="false" AutoEventWireup="true"  CodeFile="Default.aspx.cs" Inherits="_Default" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>Untitled Page</title>

</head>
<body>
    <form id="form1" runat="server">
    <div>
    <div id="print" runat="server">
    <style type="text/css">
        td
        {
            background-color:Gray;
            font-size:large
        }
        .style1
        {
            width: 143px;
        }
    </style>
      <table id="table1" border="1">
          <tr  style=" background-color:Red">
              <td>用户名</td>
              <td class="style1" rowspan="2">密  码22</td>
          </tr>
          <tr>
              <td>22</td>
          </tr>
          </table>
    </div>
   
    <asp:Button ID="Btn_Export" runat="server" Text="Export to Excel (Default)" OnClick="Btn_ExportClick" />
   
   
    <asp:Button ID="Btn_ExportToExcelPaging" runat="server" Text="Export to Excel Paging" OnClick="Btn_ExportExcelPaging" />
   
    </div>
    </form>
</body>
</html>

后台代码:

    protected void Btn_ExportClick(object sender, EventArgs e)
    {

        ToExcel(print, "dd", true);
       // string style = @"<style> .text { mso-number-format:\@; } </script> ";

       // Response.ClearContent();
       // Response.AddHeader("content-disposition", "attachment; filename=MyExcelFile.xls");
       // Response.ContentType = "application/excel";

       // StringWriter sw = new StringWriter();
       // HtmlTextWriter htw = new HtmlTextWriter(sw);
       // print.RenderControl(htw);
       //// gvUsers.RenderControl(htw);
       // // Style is added dynamically
       // Response.Write(style);
       // Response.Write(sw.ToString());
       // Response.End();
    }

    protected void Btn_ExportExcelPaging(object sender, EventArgs e)
    {
        //DisableControls(gvUsers);

        //Response.ClearContent();
        //Response.AddHeader("content-disposition", "attachment; filename=MyExcelFile.xls");
        //Response.ContentType = "application/excel";

        //StringWriter sw = new StringWriter();
        //HtmlTextWriter htw = new HtmlTextWriter(sw);

        //gvUsers.RenderControl(htw);
        //Response.Write(sw.ToString());
        //Response.End();      
    }
    public override void VerifyRenderingInServerForm(Control control)
    {

    }
    public  void ToExcel(Control control, string fileName, bool unformat)
    {
        System.IO.StringWriter tw = new System.IO.StringWriter();
        System.Web.UI.HtmlTextWriter hw = new System.Web.UI.HtmlTextWriter(tw);
        control.RenderControl(hw);

        System.Web.HttpResponse Response = System.Web.HttpContext.Current.Response;

        Response.Write(control.ToString());
        Response.Clear();
        Response.Charset = "UTF-8";
        Response.ContentEncoding = System.Text.Encoding.Default;
        Response.ContentType = "application/vnd.ms-excel";
        Response.AppendHeader("Content-Disposition", "attachment;filename=" + System.Web.HttpUtility.UrlEncode(fileName) + ".xls");
        Response.Write("<html><head><META http-equiv=\"Content-Type\" content=\"text/html; charset=gb2312\"><meta name=ProgId content=Excel.Sheet><meta name=Generator content=\"Microsoft Excel 11\"></head><body>");
        string output = tw.ToString();
        if (unformat)
        {
            // 2007-12-17 qianwt 用正则表达式去除HTML中的链接格式、图片格式
            output = Regex.Replace(output, @"<\s*/?\s*a[^>]*>", "", RegexOptions.Compiled | RegexOptions.IgnoreCase);
            output = Regex.Replace(output, @"<\s*/?\s*img[^>]*>", "", RegexOptions.Compiled | RegexOptions.IgnoreCase);
        }
        Response.Write(output);
        Response.Write("</body></html>");
        Response.End();
        hw.Close();
        hw.Flush();
        tw.Close();
        tw.Flush();
    }
}

抱歉!评论已关闭.