B/S excelまたはwordにデータをエクスポート【one編集】

3368 ワード

前にデータの書き出しなどのブログを書いたことがありますが、あまり便利ではないような気がして、今日は別の方法を蓄積しました.
参照に追加:
using System.Text; using System.IO;
.aspxページ
<body>
    <form id="form1" runat="server">
    <div>
        <table class="style1" id="table">
            <tr>
                <td>
                     , 
                </td>
                <td>
                     
                </td>
            </tr>
            <tr>
                <td>
                    dfgfsd
                </td>
                <td>
                    hello
                </td>
            </tr>
            <tr>
                <td>
                     
                </td>
                <td>
                     
                </td>
            </tr>
            <tr>
                <td>
                     
                </td>
                <td>
                     
                </td>
            </tr>
        </table>
         <asp:Button ID="btnword" runat="server" OnClick="btnword_Click1" Text="= excel=" />
    </div>
    </form>
</body>

   .csコード部分
    public override void VerifyRenderingInServerForm(Control control)
    {

    }
    /// <summary>
    ///   ,
    /// </summary>
    /// <param name="Model">Model=1: Execl,Model=2: Word</param>
    private void toFiles(int Model)
    {
        string strFileName = DateTime.Now.ToString("yyyyMMdd-hhmmss");
        System.Web.HttpContext HC = System.Web.HttpContext.Current;
        HC.Response.Clear();
        HC.Response.Buffer = true;
        HC.Response.ContentEncoding = System.Text.Encoding.UTF8;// 
        if (Model == 1)
        {
            //--- Excel 
            HC.Response.AddHeader("Content-Disposition", "attachment;filename=" + HttpUtility.UrlEncode(strFileName, System.Text.Encoding.UTF8) + ".xls");
            HC.Response.ContentType = "application/ms-excel";// excel 。
        }
        else
        {
            //---  Word 
            HC.Response.AddHeader("Content-Disposition", "attachment;filename=" + HttpUtility.UrlEncode(strFileName, System.Text.Encoding.UTF8) + ".doc");
            HC.Response.ContentType = "application/ms-word";// Word 。
        }
        System.IO.StringWriter sw = new System.IO.StringWriter();
        System.Web.UI.HtmlTextWriter htw = new System.Web.UI.HtmlTextWriter(sw);
        this.RenderControl(htw);
        HC.Response.Write(sw.ToString());
        HC.Response.End();

    }

    //- Word 
    protected void Button1_Click1(object sender, EventArgs e)
    {
        toFiles(2);// 1  excel
    }

注意:
 this.RenderControl(htw); //   :
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="WebUI_test_Default"
    EnableEventValidation="false" %>
  EnableEventValidation="false"