フッターコンテンツにスキップ
IRONXLの使用

C#でHTMLテーブルをExcelにエクスポートする方法

このガイドでは、C# で IronXL と HTML Agility Pack を使用して HTML テーブル データを Excel ファイルにエクスポートする方法を示します。これにより、Office に依存せずに、コンプライアンスが重要なアプリケーションの解析、書式設定、およびデータ整合性に対するエンタープライズ レベルの制御が可能になります。

HTML テーブル データを抽出して Excel シートに変換することは、データの移行、レポートの生成、またはさらに分析が必要な Web ページなど、ビジネス アプリケーションでは一般的な要件です。 この記事では、HTMLからExcel形式にデータテーブルの内容をエクスポートするための簡単な手順を提供します。 一部のライブラリでは、HTMLテーブルを変換するための組み込みメソッドを提供していますが、これらはしばしばファイル形式やサポート機能に制限があります。

C# で HTML テーブルを Excel にエクスポートする必要がある場合、Excel ワークシート構造と HTML テーブルの関係を理解することが重要です。 このガイドでは、HTMLテーブルからExcel形式に効率的にデータを転送し、データの整合性を維持したプロフェッショナルなExcelワークシート出力を作成する方法を示します。

IronXL は、強力なExcel 操作機能と HTML 解析を組み合わせて HTML テーブル データを C# でエクスポートし、HTML テーブル コンテンツを Excel ワークシートに変換するより柔軟な方法を提供します。 URL からデータをダウンロードする必要がある場合でも、データベースのコンテンツを処理する必要がある場合でも、このソリューションは、エンタープライズ セキュリティ標準を維持しながらさまざまな入力シナリオを処理します。

なぜHTMLテーブルデータのエクスポートにIronXLを選ぶのか?

IronXL がエンタープライズ環境に適している理由は何ですか?

IronXLは、Microsoft Officeのインストールを必要とせずにExcelファイルを作成および操作できるため、サーバー環境やクロスプラットフォームアプリケーションに理想的です。 このライブラリは、 AzureAWS Lambda FunctionsDocker コンテナへのデプロイメントをサポートしており、最新のクラウド アーキテクチャとの互換性が保証されています。 HTML Agility Packと組み合わせることで、IronXLは堅牢なHTMLファイルとコンテンツパーサーとなり、あらゆるHTMLテーブル構造をExcelシートデータに変換する多用途なソリューションとなります。 このアプローチは.NET アプリケーションとシームレスに連携し、最適化されたパフォーマンス機能を通じて大規模なデータセットを効率的に処理できます。

厳格なコンプライアンスを必要とするエンタープライズ環境向けに、IronXL は包括的なセキュリティ ドキュメントを提供し、パスワードで保護されたワークブック暗号化されたワークシートをサポートします。 このライブラリはLinux サーバーmacOS システムでもシームレスに実行され、多様なエンタープライズ インフラストラクチャに不可欠な真のクロスプラットフォーム互換性を提供します。

IronXL と他の Excel ライブラリを比較するとどうなりますか?

特定の HTML 形式とテーブル構造に限定されたImportHtmlTable関数を提供する Syncfusion Excel ライブラリの XlsIO などのライブラリとは異なり、IronXL アプローチでは、開発者が解析および変換プロセスを完全に制御できます。 この柔軟性により、開発者は、ネストされたテーブルカスタム データ フォーマット、選択的な列抽出など、厳格な組み込みメソッドでは対応できない複雑なシナリオを処理できます。 デフォルト設定はほとんどの使用ケースで問題なく機能しますが、セルのフォントやサイズ背景のパターンや色境界線の配置など、あらゆる詳細をカスタマイズできます。

IronXL の広範な API リファレンスにより、開発者は条件付き書式設定からグラフ作成まで、Excel 操作のあらゆる側面を詳細に制御できます。 このレベルの制御は、法規制の遵守や企業標準に合わせて特定の形式設定が必要なエンタープライズ データを処理する場合に特に役立ちます。

IronXL はどのような高度な機能を提供しますか?

さらに、IronXL は、数式のサポートセルのスタイル設定複数のワークシートの管理、さまざまなエクスポート形式(XLSX、XLS、 JSON 、CSV ファイル) などの包括的な Excel 機能を提供します。 ライブラリは、合計、平均、最小、最大などの数学関数をサポートしており、生成された Excel ファイル内で直接複雑な計算を実行できます。 グラフを作成したり、 PDF にエクスポートしたり、非表示のフィールドデータを管理したりすることもできるため、単純な HTML テーブル変換を超えた Excel 自動化のニーズに応える完全なソリューションになります。 DataTable オブジェクトまたはスプレッドシート ファイルで作業する場合でも、IronXL は変換をシームレスに処理します。

エンタープライズ レポートのニーズに対応するため、IronXL は数式の読みやすさを向上させる名前付き範囲、データ ナビゲーションを向上させるペインの固定、複雑なデータ構造を整理するためのグループ化/グループ解除機能をサポートしています。 ライブラリには、すべてのコンテンツが適切に表示されるように自動サイズ調整機能も用意されています。

必要なライブラリの設定方法

必要な NuGet パッケージはどれですか?

まず、NuGetパッケージマネージャーを介してIronXLとHTML Agility Packをインストールします。 IronXL は、すべての機能をテストするための無料トライアルを提供し、エンタープライズ展開向けの詳細なライセンス ドキュメントも提供しています。

Install-Package IronXL.Excel
Install-Package HtmlAgilityPack
Install-Package IronXL.Excel
Install-Package HtmlAgilityPack
SHELL

エンタープライズ環境では、 Web.config でライセンス キーを構成するか、ライセンス APIを使用してプログラムで適用することができます。 このライブラリは、ASP.NET Web アプリケーションBlazor サーバー側アプリケーションなど、さまざまな展開シナリオをサポートしています。

どのような名前空間をインポートすればよいですか?

これらの NuGet パッケージを使用すると、Excel ドキュメントをプログラムで作成読み込み保存できます。 次に、必要なusingステートメントをC#コードファイルにインポートします。

using IronXL;
using HtmlAgilityPack;
using System;
using System.Linq;
using IronXL;
using HtmlAgilityPack;
using System;
using System.Linq;
$vbLabelText   $csharpLabel

これらのライブラリはシームレスに連携し、HTML Agility Pack が HTML 解析を処理し、IronXL がExcel ファイルの作成と操作を管理します。 この例では、HTML テーブルをXLSX 形式に変換する簡単な方法を示します。 VB.NET 開発者の場合、わずかな構文の調整で同様の機能を利用できます。

HTML Agility Packを使用してHTMLテーブルデータをパースする方法

HTML テーブル コンテンツを抽出するための基本的なアプローチは何ですか?

HTML Agility PackはXPath式を使用してHTMLドキュメントをナビゲートするための簡単な方法を提供します。 次のコードは、HTML テーブルからデータを抽出し、 IronXL のデータ インポート機能を使用してエクスポート用に準備する方法を示しています。

// Sample HTML table with product data
string htmlContent = @"
<table>
    <thead>
        <tr>
            <th>Product</th>
            <th>Price</th>
            <th>Stock</th>
        </tr>
    </thead>
    <tbody>
        <tr>
            <td>Laptop</td>
            <td>$999</td>
            <td>15</td>
        </tr>
        <tr>
            <td>Mouse</td>
            <td>$25</td>
            <td>50</td>
        </tr>
        <tr>
            <td>Keyboard</td>
            <td>$75</td>
            <td>30</td>
        </tr>
    </tbody>
</table>";
// Load HTML document for parsing
var doc = new HtmlDocument();
doc.LoadHtml(htmlContent);
// Select the HTML table element using XPath
var table = doc.DocumentNode.SelectSingleNode("//table");
// Sample HTML table with product data
string htmlContent = @"
<table>
    <thead>
        <tr>
            <th>Product</th>
            <th>Price</th>
            <th>Stock</th>
        </tr>
    </thead>
    <tbody>
        <tr>
            <td>Laptop</td>
            <td>$999</td>
            <td>15</td>
        </tr>
        <tr>
            <td>Mouse</td>
            <td>$25</td>
            <td>50</td>
        </tr>
        <tr>
            <td>Keyboard</td>
            <td>$75</td>
            <td>30</td>
        </tr>
    </tbody>
</table>";
// Load HTML document for parsing
var doc = new HtmlDocument();
doc.LoadHtml(htmlContent);
// Select the HTML table element using XPath
var table = doc.DocumentNode.SelectSingleNode("//table");
$vbLabelText   $csharpLabel

この解析アプローチは、Web スクレイピング、データベースのエクスポート、動的に生成されたコンテンツなど、さまざまな HTML ソースでうまく機能します。 抽出されたデータは、エクスポート前に IronXL のデータ操作機能を使用してさらに処理できます。

テーブル要素に対する XPath 選択はどのように機能しますか?

このコードは、HTML コンテンツをHtmlDocumentオブジェクトに読み込み、XPath を使用してテーブル要素を照会および選択しますSelectSingleNodeメソッドは HTML 内で最初に見つかったテーブルを返すため、複数のテーブルが存在する場合でも特定のテーブルを簡単にターゲットにすることができます。各テーブル行は処理され、変換用のセル値が抽出されます。これは、IronXL の Excel データに対する範囲選択の動作に似ています。

結合されたセル繰り返される行と列を含むより複雑なシナリオでは、変換中に適切な構造を維持するために追加の解析ロジックが必要になる場合があります。

IronXLを使用してパースされたデータをExcelにエクスポートする方法

HTML テーブル データを Excel 形式に変換するコードは何ですか?

IronXLを使用すると、パースされたHTMLテーブルデータを適切なフォーマットでプロフェッショナルなExcelスプレッドシートに簡単に変換できます。 次のコードは、カスタムフォント サイズとフォント ファミリの設定を使用してデータをエクスポートする方法を示しています。

// Create a new Excel workbook
WorkBook workBook = WorkBook.Create(ExcelFileFormat.XLSX);
WorkSheet workSheet = workBook.CreateWorkSheet("Exported Data");
// Extract and write headers
var headers = table.SelectNodes(".//thead/tr/th");
if (headers != null)
{
    for (int col = 0; col < headers.Count; col++)
    {
        workSheet.SetCellValue(0, col, headers[col].InnerText.Trim());
        // Apply header formatting
        var headerCell = workSheet.GetCellAt(0, col);
        headerCell.Style.Font.Bold = true;
        headerCell.Style.BackgroundColor = "#4CAF50";
    }
}
// Extract and write data rows
var rows = table.SelectNodes(".//tbody/tr");
if (rows != null)
{
    for (int row = 0; row < rows.Count; row++)
    {
        var cells = rows[row].SelectNodes("td");
        if (cells != null)
        {
            for (int col = 0; col < cells.Count; col++)
            {
                string cellValue = cells[col].InnerText.Trim();
                workSheet.SetCellValue(row + 1, col, cellValue);
            }
        }
    }
}
// Auto-fit columns for better readability
for (int col = 0; col < headers?.Count; col++)
{
    workSheet.AutoSizeColumn(col);
}
// Save the Excel file
workBook.SaveAs("ExportedTable.xlsx");
// Create a new Excel workbook
WorkBook workBook = WorkBook.Create(ExcelFileFormat.XLSX);
WorkSheet workSheet = workBook.CreateWorkSheet("Exported Data");
// Extract and write headers
var headers = table.SelectNodes(".//thead/tr/th");
if (headers != null)
{
    for (int col = 0; col < headers.Count; col++)
    {
        workSheet.SetCellValue(0, col, headers[col].InnerText.Trim());
        // Apply header formatting
        var headerCell = workSheet.GetCellAt(0, col);
        headerCell.Style.Font.Bold = true;
        headerCell.Style.BackgroundColor = "#4CAF50";
    }
}
// Extract and write data rows
var rows = table.SelectNodes(".//tbody/tr");
if (rows != null)
{
    for (int row = 0; row < rows.Count; row++)
    {
        var cells = rows[row].SelectNodes("td");
        if (cells != null)
        {
            for (int col = 0; col < cells.Count; col++)
            {
                string cellValue = cells[col].InnerText.Trim();
                workSheet.SetCellValue(row + 1, col, cellValue);
            }
        }
    }
}
// Auto-fit columns for better readability
for (int col = 0; col < headers?.Count; col++)
{
    workSheet.AutoSizeColumn(col);
}
// Save the Excel file
workBook.SaveAs("ExportedTable.xlsx");
$vbLabelText   $csharpLabel

このコードは、数値形式セルコメントハイパーリンクなどの追加の書式設定オプションを使用して拡張し、より洗練された Excel 出力を作成できます。 大規模なデータセットの場合、ファイル サイズの制限に対処するためにIronXL のパフォーマンス最適化機能の使用を検討してください。

Excel API 構造はどのように機能しますか?

このコードは、C# Excel 操作用の IronXL の直感的な API を示しています。 まず、新しいWorkBookおよびWorkSheetを作成します。 次に、解析された HTML テーブル ヘッダーを反復処理し、太字の書式と緑の背景色を適用しながら、最初の行に配置します。 HTMLテーブルからのデータ行も同様に処理され、各セルのテキストコンテンツが抽出され、対応するExcelセルに配置されます。 AutoSizeColumn関数により、すべてのコンテンツが表示されるようになり、最終的にワークブックはXLSX ファイルとして保存されます。 生成されたファイルは簡単にダウンロードしたり、後で検索できるようにデータベースに保存したりできます。

監査証跡を必要とするエンタープライズ シナリオでは、作成者情報、作成日、ドキュメント プロパティなどのブックのメタデータを追加できます。 ライブラリは、印刷可能なレポートを生成するための印刷セットアップ構成もサポートしています。

HTMLテーブルをExcelファイルにエクスポートする方法:図1 - IronXLでパースされたテーブルデータの出力

最終的なアウトプットはどのようになりますか?

ここでは、元の HTML テーブルと上記の出力を比較して、IronXL がプロフェッショナルな書式設定オプションを提供しながらデータの整合性を維持する方法を確認できます。

HTMLテーブルをExcelファイルにエクスポートする方法:図2 - パースされたExcelデータと元のHTMLテーブル

一般的なエクスポートシナリオをどのように処理しますか?

複数の HTML テーブルをエクスポートするにはどうすればよいでしょうか?

複数のテーブルを操作する場合は、 SelectNodes ("//table") を使用してすべてのテーブルを取得し、反復処理して、テーブルごとに個別のワークシートを作成します。 この例では、ワークシート管理手法を使用して、大規模なデータセットを含む複雑なシナリオを処理する方法を示します。

var tables = doc.DocumentNode.SelectNodes("//table");
foreach (var tbl in tables)
{
    // Create new worksheet for each table
    WorkSheet ws = workBook.CreateWorkSheet($"Table_{tables.IndexOf(tbl) + 1}");
    // Process table as shown above
}
var tables = doc.DocumentNode.SelectNodes("//table");
foreach (var tbl in tables)
{
    // Create new worksheet for each table
    WorkSheet ws = workBook.CreateWorkSheet($"Table_{tables.IndexOf(tbl) + 1}");
    // Process table as shown above
}
$vbLabelText   $csharpLabel

より高度なシナリオでは、複数の Excel 範囲を結合したりデータの検証を実装したり、条件付き書式ルールを追加して重要なデータ パターンを強調表示したりすることができます。

どのようなエラー処理を実装する必要がありますか?

エラーハンドリングのために、パースロジックをtry-catchブロックでラップして、不正なHTMLを適切に処理します。 IronXL はデータ型の検出を自動的に処理し、組み込みの変換機能を使用して適切な場合に数値文字列を数値に変換します。 動的コンテンツを含むより複雑なシナリオでは、開発者はJavaScriptでレンダリングされたテーブルのためにSelenium WebDriverのようなツールと組み合わせてこのアプローチを使用することがよくあります。

CSV ファイルまたはTSV データを扱う場合、IronXL は区切り文字ベースの形式を処理するための特殊なメソッドを提供します。 このライブラリは、さまざまなスプレッドシート形式間の変換もサポートしており、さまざまなシステムで必要な形式に簡単にエクスポートできます。

特別なデータ要件をどのように処理しますか?

URLやデータベースクエリのコンテンツをさらに分析するために処理する場合、隠しフィールドの値や特殊なフォーマット要件などの詳細を処理する必要がある場合があります。 デフォルトの動作は標準のテーブルでは適切に機能しますが、 IronXL のスタイリング APIを使用して、必要に応じて各列または特定のテーブル行のフォント サイズ、フォント ファミリ、その他のスタイリング プロパティをカスタマイズできます。

並べ替えトリミングが必要なデータの場合、IronXL には、最終的なエクスポートの前にデータをクリーンアップして整理するための組み込みメソッドが用意されています。 解析要件に基づいて行と列を動的に追加したり、処理中に必要に応じて新しい行と列を挿入したりすることもできます。

エンタープライズ アプリケーションでは、Web 表示用にHTML に変換したりDataTable 変換を介してSQL データベースと統合したりするなど、さまざまな形式へのエクスポートが必要になることがよくあります。 IronXL は、専用のメソッドと包括的なドキュメントを使用して、これらすべてのシナリオをサポートします。

このソリューションの主な利点は何ですか?

IronXLとHTML Agility Packの組み合わせは、C#でのHTMLテーブルのExcelへのエクスポートのための堅牢で柔軟なソリューションを提供します。 この記事では、HTMLコンテンツをXLSX形式に変換し、データ化可能な情報をエクスポートし、プロフェッショナルなスプレッドシートファイルを作成する簡単な手順を紹介しました。 このアプローチは、堅苦しい組み込みメソッドよりも多くのコントロールを提供し、IronXLの包括的なExcel機能を活用しながら複雑なHTML構造を処理することができます。

エンタープライズ展開の場合、IronXL は詳細なセキュリティ ドキュメント柔軟なライセンス オプションライセンスの拡張アップグレードのサポートを提供します。 ライブラリの変更ログは、パフォーマンスと機能の継続的な改善を示しており、エンタープライズ プロジェクトの長期的な実行可能性を保証します。

このソリューションは、Web スクレーパーの構築、データベースからのレガシー データの移行、チャートを使用したレポート生成の自動化、大規模なデータセットでのデータ分析の実行など、企業のニーズに合わせて拡張できます。 提供されるコード例では、静的なHTMLからURL経由で取得された動的なコンテンツまで、さまざまな入力ソースを処理する方法を示しています。 結果を簡単にエクスポートしてダウンロードしたり、 .NET MAUI アプリケーションや従来のデスクトップ ソリューションでさらに処理したりできます。

高度な Excel 機能を必要とする組織向けに、IronXL は集計関数C# での Excel 数式、さらにはExcel からのデータベース レコードの直接更新もサポートしています。 ライブラリのExcel ファイル保護機能により、エクスポート プロセス全体を通じてデータのセキュリティが確保されます。

HTMLデータをプロフェッショナルなExcelシートファイルに変換する準備はできましたか? 今すぐIronXLの無料トライアルを開始し、Office依存を排除したプログラムによるExcel操作の柔軟性を体験してください。 本番デプロイメントの場合、ライセンスオプションを探索して、$799から始めてください。 高度な Excel 自動化テクニックの詳細については、当社の包括的なチュートリアルをご覧ください。

よくある質問

IronXLを使ってHTMLテーブルをExcelに変換する主な利点は何ですか?

IronXLは、Microsoft Officeを必要とせずに、柔軟なアプローチでHTMLテーブルデータをExcelスプレッドシートに簡単に変換でき、クロスプラットフォーム互換性を可能にします。

IronXLはExcelに変換する際に複雑なHTMLテーブル構造を処理できますか?

{"text":"\u306f\u3044\u3001IronXL\u306f\u8907\u96d1\u306aHTML\u30c6\u30fc\u30d6\u30eb\u69cb\u9020\u3092\u7ba1\u7406\u3059\u308b\u3088\u3046\u306b\u8a2d\u8a08\u3055\u308c\u3066\u304a\u308a\u3001\u30c7\u30fc\u30bf\u304c\u5143\u306e\u30ec\u30a4\u30a2\u30a6\u30c8\u3068\u5f62\u5f0f\u3092\u7dad\u6301\u3057\u305f\u307e\u307eExcel\u306b\u6b63\u78ba\u306b\u30a8\u30af\u30b9\u30dd\u30fc\u30c8\u3055\u308c\u308b\u3053\u3068\u3092\u4fdd\u8a3c\u3057\u307e\u3059\u3002"}

IronXLを使用してC#でHTMLテーブルをExcelに自動変換することは可能ですか?

もちろん、IronXLは自動化をサポートしており、開発者がC#アプリケーション内でプログラムによってHTMLテーブルをExcelシートに変換することで、データ処理ワークフローを効率化します。

HTMLテーブルをExcelに変換する際、IronXLはさまざまなファイル形式をサポートしていますか?

IronXLはXLSX、XLS、CSVなどのさまざまなExcelファイル形式をサポートしており、アプリケーションのニーズに最適な出力形式を選択する柔軟性を提供します。

IronXLを使ってHTMLからExcelに変換する際にMicrosoft Officeをインストールする必要がありますか?

いいえ、IronXLはMicrosoft Officeをインストールする必要がなく、軽量なソリューションを提供し、さまざまなプラットフォームでHTMLをExcelに変換できます。

IronXLを使ってHTMLテーブルをExcelに変換する典型的なユースケースは何ですか?

データ移行、レポート生成、ウェブページデータの詳細な分析などが一般的なユースケースです。ビジネスアプリケーションにおいてHTMLテーブルコンテンツをExcelにエクスポートする必要があります。

IronXLは他のHTMLからExcelへの変換ライブラリと比べてどのように優れていますか?

一部のライブラリにはHTMLからExcelへの変換のための組み込みメソッドがあるかもしれませんが、IronXLは通常のソリューションで見られる制限、例えば制限されたファイル形式のサポートといったものがなく、広範な機能を提供することで際立っています。

カーティス・チャウ
テクニカルライター

Curtis Chauは、カールトン大学でコンピュータサイエンスの学士号を取得し、Node.js、TypeScript、JavaScript、およびReactに精通したフロントエンド開発を専門としています。直感的で美しいユーザーインターフェースを作成することに情熱を持ち、Curtisは現代のフレームワークを用いた開発や、構造の良い視覚的に魅力的なマニュアルの作成を楽しんでいます。

開発以外にも、CurtisはIoT(Internet of Things)への強い関心を持ち、ハードウェアとソフトウェアの統合方法を模索しています。余暇には、ゲームをしたりDiscordボットを作成したりして、技術に対する愛情と創造性を組み合わせています。