之前有写过导出数据之类的博客,可是感觉都不是很便捷,今天我在此累积了另外一种方法
引用中添加:
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"