B/S excelまたはwordにデータをエクスポート【one編集】
3368 ワード
前にデータの書き出しなどのブログを書いたことがありますが、あまり便利ではないような気がして、今日は別の方法を蓄積しました.
参照に追加:
using System.Text; using System.IO;
.aspxページ
.csコード部分
注意:
参照に追加:
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"