首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Excel电子表格到HTML的编程实现

Excel电子表格到HTML的编程实现
EN

Stack Overflow用户
提问于 2012-08-02 04:32:25
回答 1查看 337关注 0票数 1

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

EN

回答 1

Stack Overflow用户

发布于 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>

代码语言:javascript
运行
复制
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,可以使用另一个扩展方法:

代码语言:javascript
运行
复制
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;
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11767129

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档