生成Excel表格是asp.net应用程序中常见的功能之一,通过使用Table控件进行生成是一种比较方便的方法。本文将介绍一种基于ASP.NET Web Forms的方法,用于使用Table控件生成Excel表格的方法。
步骤1:创建一个空网站
创建一个空的ASP.NET网站(适用于Web Forms),并确保你已打开Visual Studio。如果你使用的是Visual Studio 2017,则可以通过单击“新建项目”菜单(或视觉设计器)来完成此操作。
步骤2:建立表格
将一个HtmlTable(即System.Web.UI.WebControls.HtmlTable)添加到待发布页面或控件中。
例如,以下代码为网页中建立了一个表格。
<asp:Table ID="tblExample" runat="server">
<asp:TableRow>
<asp:TableCell>Header1</asp:TableCell>
<asp:TableCell>Header2</asp:TableCell>
<asp:TableCell>Header3</asp:TableCell>
</asp:TableRow>
<asp:TableRow>
<asp:TableCell>DataCell1</asp:TableCell>
<asp:TableCell>DataCell2</asp:TableCell>
<asp:TableCell>DataCell3</asp:TableCell>
</asp:TableRow>
<asp:TableRow>
<asp:TableCell>DataCell4</asp:TableCell>
<asp:TableCell>DataCell5</asp:TableCell>
<asp:TableCell>DataCell6</asp:TableCell>
</asp:TableRow>
</asp:Table>
步骤3:设置响应头部
添加以下代码设置HttpResponse对象的响应头部:
Response.ClearContent();
Response.Buffer = true;
Response.ClearHeaders();
Response.ContentType = "application/ms-excel";
Response.AddHeader("Content-Disposition", "attachment; filename=Example.xls");
Response.Charset = "";
步骤4:使用StringWriter和HtmlTextWriter类,将Table写入响应流
StringWriter writeHTML = new StringWriter();
HtmlTextWriter htmlWrite = new HtmlTextWriter(writeHTML);
tblExample.RenderControl(htmlWrite);
Response.Write(writeHTML.ToString());
Response.End();
CSharp
代码的作用如下:
- StringWriter对象writeHTML,用于包括Table控件的HTML输出。
- HtmlTextWriter对象htmlWrite,用于向StringWriter对象中写入HTML。
- 调用Table控件的RenderControl方法,导致表格HTML文本以及上述的标题行,写入StringWriter并由HtmlTextWriter写回。
- 将StringWriter输出字符串通过Response对象输出控制台浏览器。
示例
以下是一个完整的示例。
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>
<!DOCTYPE html>
<head runat="server">
<title></title>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:Table ID="tblExample" runat="server">
<asp:TableRow>
<asp:TableCell>Header1</asp:TableCell>
<asp:TableCell>Header2</asp:TableCell>
<asp:TableCell>Header3</asp:TableCell>
</asp:TableRow>
<asp:TableRow>
<asp:TableCell>DataCell1</asp:TableCell>
<asp:TableCell>DataCell2</asp:TableCell>
<asp:TableCell>DataCell3</asp:TableCell>
</asp:TableRow>
<asp:TableRow>
<asp:TableCell>DataCell4</asp:TableCell>
<asp:TableCell>DataCell5</asp:TableCell>
<asp:TableCell>DataCell6</asp:TableCell>
</asp:TableRow>
</asp:Table>
<asp:Button ID="btnExport" runat="server" Text="导出Excel" OnClick="btnExport_Click" />
</div>
</form>
</body>
</html>
using System;
using System.IO;
using System.Web.UI.WebControls;
public partial class _Default : System.Web.UI.Page
{
protected void btnExport_Click(object sender, EventArgs e)
{
Response.ClearContent();
Response.Buffer = true;
Response.ClearHeaders();
Response.ContentType = "application/ms-excel";
Response.AddHeader("Content-Disposition", "attachment; filename=Example.xls"); Response.Charset = "";
StringWriter writeHTML = new StringWriter();
HtmlTextWriter htmlWrite = new HtmlTextWriter(writeHTML);
tblExample.RenderControl(htmlWrite);
Response.Write(writeHTML.ToString());
Response.End();
}
}
当我们点击网页上的“导出Excel”按钮时,Excel文件将被生成并呈现在新的浏览器窗口中。
至此,“asp.net中Table生成Excel表格的方法”完整攻略告诉读者如何用Table控件生成Excel表格,也给出了两个简单的示例,希望能对读者有帮助。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:asp.net中Table生成Excel表格的方法 - Python技术站