我有一个问题,希望有人能回答。我正在使用Excel3.5Winforms和HTML2010组件,我想知道是否有免费或低成本的方法可以将.Net工作簿转换为SpreadSheetGear?有没有好的XSLT转换或低成本或开放源码的组件?我可以通过编程将Excel文件保存到OpenXMLWorkbook,但是组件不允许保存到html。任何帮助都将不胜感激。谢谢。
发布于 2012-08-02 04:41:18
使用ASP.Net并遵循Excel to DataGrid Samples演示的代码。您可以随时在项目中包含对System.Web
的引用。
但是,即使没有ASP.Net,并坚持使用.Net客户机配置文件,从DataTable
生成HTML表也很简单。使用AntiXss Library (download)将数据编码为html。然后用StringBuilder
构造你的超文本标记语言。下面是一个扩展方法,可用于将任何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;
}
https://stackoverflow.com/questions/11767129
复制相似问题