使用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