我有一个问题希望有人能回答。我正在使用 .Net 3.5 Winforms 和 SpreadSheetGear 2010 组件,需要知道是否有免费或低成本的方法可以将 Excel 工作簿转换为 HTML?有没有好的 XSLT 转换或一些低成本或开源组件?我可以以编程方式将 Excel 文件保存到 OpenXMLWorkbook,但该组件不允许保存到 html。任何帮助,将不胜感激。谢谢。
问问题
341 次
1 回答
0
使用 ASP.Net 并按照Excel to DataGrid Samples演示的代码进行操作。您始终可以System.Web
在项目中包含对的引用。
但是,即使没有 ASP.Net,并且坚持使用 .Net 客户端配置文件,从 a 生成 HTML 表DataTable
也很简单。使用AntiXss 库(下载) 将数据编码为 html。然后用StringBuilder
. 这是可用于将 any 转换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;
}
于 2012-08-01T20:41:18.363 回答