Excel电子表格到HTML编程

我有一个问题,我希望有人可以回答。 我正在使用.Net 3.5 Winforms和SpreadSheetGear 2010组件,并需要知道是否有一个免费或低成本的方法来将Excel工作簿转换为HTML? 是否有一个很好的XSLT转换或一些低成本或开源组件? 我可以将Excel文件保存为OpenXMLWorkbook,但该组件不允许保存为html。 任何帮助,将不胜感激。 谢谢。

使用ASP.Net并按照演示的Excel到DataGrid示例的代码。 您可以随时在您的项目中包含对System.Web的引用。

但是,即使没有ASP.Net,并坚持.Net客户端configuration文件,从DataTable生成一个HTML表格很简单。 使用AntiXss库 ( 下载 )将数据编码为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; }