使用ASP.Net并按照Excel to DataGrid Samples证明代码。您始终可以在项目中包含对System.Web
的引用。
但是,即使没有ASP.Net,并与.Net客户端简档粘,从DataTable
产生一个HTML表格是简单的。使用AntiXss Library(download)将数据编码为html。然后用StringBuilder
构建您的HTML。下面是一个扩展方法,你可以使用任何DataTable
转换为HTML <table>
:
using AntiXss = Microsoft.Security.Application;
...
public static String ToHTML(this DataTable dt)
{
StringBuilder html = new StringBuilder("<table><thead><tr>");
foreach (DataColumn col in dt.Columns)
{
html.AppendFormat("<td>{0}</td>",
AntiXss.Encoder.HtmlEncode(col.ColumnName));
}
html.Append("</tr></thead><tbody>");
foreach (DataRow row in dt.Rows)
{
html.Append("<tr>");
foreach (var data in row.ItemArray)
{
html.AppendFormat("<td>{0}</td>",
AntiXss.Encoder.HtmlEncode(data.ToString()));
}
html.Append("</tr>");
}
html.Append("</tbody></table>");
return html.ToString();
}
而获得HTML为整个工作簿,另一种扩展方法:
public static List<String> ToHTML(this IWorkBook wb)
{
List<String> tables = new List<String>();
DataSet ds = wb.GetDataSet(GetDataFlags.FormattedText);
foreach (DataTable dt in ds.Tables)
{
tables.Add(dt.ToHTML());
}
return tables;
}
感谢您的帮助,但我们系统是一个winforms唯一系统。 – 2012-08-01 20:46:53
@GregWilliams - 我用一个不需要'System.Web'的解决方案更新了我的答案。 – gilly3 2012-08-01 22:38:02