1

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

4

1 回答 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 回答