1

誰かに答えてもらいたいという質問があります。.Net 3.5 Winforms と SpreadSheetGear 2010 コンポーネントを使用していますが、Excel ワークブックを HTML に変換するための無料または低コストの方法があるかどうかを知る必要がありますか? 優れた XSLT 変換、または低コストまたはオープン ソースのコンポーネントはありますか? プログラムで Excel ファイルを OpenXMLWorkbook に保存できますが、コンポーネントでは html に保存できません。どんな助けでも大歓迎です。ありがとう。

4

1 に答える 1

0

ASP.Netを使用し、Excelで示されているコードに従ってDataGridサンプルを作成します。プロジェクトにはいつでもへの参照を含めることができSystem.Webます。

ただし、ASP.Netがなくても、.Netクライアントプロファイルを使用している場合でも、からHTMLテーブルを生成するのDataTableは簡単です。AntiXssライブラリダウンロード)を使用して、データをhtmlにエンコードします。次に、を使用してHTMLを作成しますStringBuilderDataTableanyを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 に答える