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

C#でHTMLテーブルをIronXL.Excelファイルにエクスポートする

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

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

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

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

IronXLは、Microsoft OfficeをインストールすることなくExcelファイルを作成・操作することに優れており、サーバー環境やクロスプラットフォームアプリケーションに最適です。 HTML Agility Packと組み合わせることで、IronXLは堅牢なHTMLファイルとコンテンツパーサーとなり、あらゆるHTMLテーブル構造をExcelシートデータに変換する多用途なソリューションとなります。 このアプローチは.NETアプリケーションとシームレスに連携し、大量のデータセットを効率的に処理できます。

SyncfusionのExcelライブラリのXlsIOのImportHtmlTable機能のような特定のHTMLフォーマットやテーブル構造に限定されたライブラリとは異なり、IronXLのアプローチは、開発者にパースおよび変換プロセスに対する完全なコントロールを提供します。 この柔軟性により、ネストされたテーブル、カスタムデータフォーマット、および選択的な列の抽出など、厳格な組み込みメソッドが対応できない複雑なシナリオを処理することができます。 デフォルトの設定はほとんどのユースケースに適していますが、すべての詳細をカスタマイズできます。

さらに、IronXLは数式のサポートセルのスタイル設定複数ワークシートの管理、さまざまなエクスポート形式(XLSX、XLS、JSON、CSVファイル)を含む包括的なExcel機能を提供します。 グラフの作成、PDFへのエクスポート、隠しフィールドデータの管理も可能で、単純なHTMLテーブル変換を超えたExcel自動化ニーズのための完全なソリューションとなっています。 IronXLはデータテーブルオブジェクトであろうとスプレッドシートファイルであろうと、シームレスに変換を行います。

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

まず、NuGetパッケージマネージャーを介してIronXLとHTML Agility Packをインストールします。 IronXLは、すべての機能をテストするための無料トライアルを提供しています。

Install-Package IronXL.Excel
Install-Package HtmlAgilityPack
Install-Package IronXL.Excel
Install-Package HtmlAgilityPack
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

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

using IronXL;
using HtmlAgilityPack;
using System;
using System.Linq;
using IronXL;
using HtmlAgilityPack;
using System;
using System.Linq;
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

これらのライブラリはシームレスに連携し、HTML Agility PackがHTMLパースを処理し、IronXLがExcelファイルの作成と操作を管理します。 この例では、HTMLの表をXLSX形式に変換する簡単な方法を示します。

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

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

// 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");
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

このコードは、HTML コンテンツを HtmlDocument<//code> オブジェクトにロードし、XPath を使用してテーブル要素をクエリして選択します。 SelectSingleNodeメソッドは、HTML内で最初に見つかったテーブルを返します。各テーブル行は、変換のためのセル値を抽出するために処理されます。

IronXLを使用してパースされたデータを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");
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

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

IronXLでHTMLテーブルをExcelファイルにエクスポートするC#: Image 1 - IronXLが解析したテーブルデータの出力</a

ここでは、元のHTMLテーブルと上記の出力を比較できます:

C# Export HTML Table to Excel File with IronXL: Image 2 - パースされたExcelデータと元のHTMLテーブル</a

一般的なシナリオの処理

複数のテーブルを扱うときは、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
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

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

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

結論

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

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

HTMLデータをプロフェッショナルなExcelシートファイルに変換する準備はできましたか? 今すぐIronXLの無料トライアルを開始し、Office依存を排除したプログラムによるExcel操作の柔軟性を体験してください。 本番環境への導入については、749ドルからのライセンスオプションをご検討ください。

よくある質問

ビジネスアプリケーションでHTMLテーブルをExcelに変換する主な目的は何ですか?

主な目的は、HTMLテーブルデータをExcelで管理・分析しやすい形式に変換することで、Webページデータのデータ移行やレポート作成、さらなる分析を容易にすることです。

C#でHTMLテーブルをExcelに変換するために、ガイドはどのライブラリを推奨していますか?

このガイドでは、C#でHTMLテーブルをExcelに変換するためにIronXLを使用することを提案しています。

HTMLテーブルをExcelに変換するのに適していないライブラリがあるのはなぜですか?

ライブラリによっては、ファイル形式に制限があったり、サポート機能が不足していたりするため、多様なデータ変換ニーズに対応するための有効性が制限される可能性があり、適していない場合があります。

HTMLテーブルをExcelにエクスポートするためにIronXLを使用するにはMicrosoft Officeが必要ですか?

IronXLを使うのにMicrosoft Officeは必要ありません。IronXLはクロスプラットフォームで動作し、HTMLテーブルをExcelにエクスポートするための柔軟なソリューションを提供します。

IronXLはHTMLテーブルをクロスプラットフォームでExcelに変換できますか?

IronXLはHTMLテーブルからExcelへのクロスプラットフォーム変換が可能で、さまざまな環境で働く開発者にとって汎用性の高いツールです。

HTMLテーブルをExcelに変換する一般的な使用例を教えてください。

一般的な使用例としては、データの移行、レポートの作成、より構造化されたアクセス可能な形式でのWebページデータの分析などがあります。

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

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

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