【轉】ASP.NET導出word和excel通用代碼

aspx代碼

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title>無標題頁</title>
</head>
<body>
    <form id="form1" runat="server">
         <div>
            <table align="center" cellpadding="0" cellspacing="0" border="0">
                <tr>
                    <td align="center">
                        <asp:Button ID="cmdOpen" runat="server" Text="在線打開" CommandName="open" OnCommand="Button_Click" />&nbsp;
                        <asp:Button ID="cmdSave" runat="server" Text="本地保存" CommandName="save" OnCommand="Button_Click" />
                        <asp:DropDownList ID="listType" runat="server" >
                            <asp:ListItem Value="excel">Excel</asp:ListItem>
                            <asp:ListItem Value="word">Word</asp:ListItem>
                         </asp:DropDownList><br />
                        <br />
                        數據源:<br />
                        <br />
                        <asp:GridView ID="myGW" runat="server" >
                        </asp:GridView>
                    </td>
                </tr>
            </table>
        </div>
    </form>
</body>
</html>

aspx.cs代碼

using System;
using System.Data;
using System.Data.SqlClient;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;

public partial class _Default : System.Web.UI.Page 
{
    protected void Page_Load(object sender, EventArgs e)
    {
        FillGridView();
    }
    private void OutPut(string fileType, string strType)
    {
        Response.Clear();
        Response.Buffer = true;
        Response.Charset = "GB2312";
        Response.AppendHeader("Content-Disposition", fileType);
        Response.ContentType = strType;
        this.EnableViewState = false;
        System.IO.StringWriter swOut = new System.IO.StringWriter();
        HtmlTextWriter hTw = new HtmlTextWriter(swOut);
        myGW.RenderControl(hTw);
        Response.Write(swOut.ToString());
        Response.End();
    }
    protected void Button_Click(object sender, CommandEventArgs e)
    {
        switch (e.CommandName)
        {
            case "save":
                switch (listType.SelectedValue)
                {
                 case "excel":
                        OutPut("attachment;filename=out.xls", "application/ms-excel");
                        break;
                    case "word":
                        OutPut("attachment;filename=out.doc", "application/ms-word");
                        break;
                }
                break;
            case "open":
                switch (listType.SelectedValue)
                {
                    case "excel":
                        OutPut("online;filename=out.xls", "application/ms-excel");
                        break;
                    case "word":
                        OutPut("online;filename=out.doc", "application/ms-word");
                        break;
                }
                break;
        }
    }
    public override void VerifyRenderingInServerForm(Control control)
    {
    }
    private void FillGridView()
    {
        string strConn = "server=.;database=sbskweb;user id=sa;password=sa";
        SqlConnection conn = new SqlConnection(strConn);
        SqlCommand comm = new SqlCommand();
        comm.Connection = conn;
        string strSql = "SELECT top 10 序號=Rowid,父節點=FatherID,模塊名稱=Categoryname FROM Web_Category";
        comm.CommandText = strSql;
        conn.Open();
        this.myGW.DataSource = comm.ExecuteReader();
        this.myGW.DataBind();
        conn.Close();
    }

}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章