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

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

HTMLテーブルのデータを抽出してExcelシートに変換することは、データ移行、レポート作成、あるいはさらなる分析が必要なWebページなど、ビジネスアプリケーションにおいてよく求められる要件です。 このガイドでは、 IronXLHTML Agility Packを使用してHTMLテーブルからExcel形式にデータをエクスポートするための明確な手順を説明します。

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

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

HTMLテーブルデータのエクスポートにIronXLを使用すべき理由とは?

IronXLはMicrosoft Officeのインストールを必要とせずにExcelファイルを作成および操作することに優れているため、サーバー環境やクロスプラットフォームアプリケーションに最適です。 高性能なHTMLファイルおよびコンテンツパーサーであるHTML Agility Packと組み合わせることで、 IronXLはあらゆるHTMLテーブル構造をExcelシートデータに変換できる汎用性の高いソリューションとなります。 この方法は.NET 10アプリケーションと相性が良く、大規模なデータセットも効率的に処理できます。

Syncfusion ExcelライブラリのXlsIOのようなライブラリは、特定のHTML形式とテーブル構造に限定されたImportHtmlTable関数を提供しますが、 IronXLのアプローチでは、開発者は解析と変換プロセスを完全に制御できます。 この柔軟性により、ネストされたテーブル、カスタムデータフォーマット、および選択的な列の抽出など、厳格な組み込みメソッドが対応できない複雑なシナリオを処理することができます。

IronXLは、数式サポートセルスタイル設定複数ワークシート管理、各種エクスポート形式(XLSX、XLS、JSON、CSV)など、ExcelのあらゆるSuiteを備えています。 グラフの作成、PDFへのエクスポート、非表示フィールドデータの管理などが可能で、単なるHTMLテーブル変換にとどまらない、Excel自動化のための包括的なソリューションです。

必要なライブラリはどのようにインストールすればよいですか?

IronXLとHTML Agility Packの両方をNuGetパッケージマネージャー経由でインストールしてください。 IronXLは、ライセンス契約前にすべての機能を試せる無料トライアルを提供しています。

パッケージマネージャコンソール

Install-Package IronXl.Excel
Install-Package HtmlAgilityPack
Install-Package IronXl.Excel
Install-Package HtmlAgilityPack
SHELL

.NET CLI

dotnet add package IronXl.Excel
dotnet add package HtmlAgilityPack
dotnet add package IronXl.Excel
dotnet add package HtmlAgilityPack
SHELL

これらのNuGetパッケージを使用すると、プログラムでExcelドキュメントを作成、読み込み、および保存できます。 両方のパッケージをインストールした後、C# ファイルの先頭に必要な using ステートメントを追加してください。

using IronXL;
using HtmlAgilityPack;
using System;
using System.Linq;
using IronXL;
using HtmlAgilityPack;
using System;
using System.Linq;
Imports IronXL
Imports HtmlAgilityPack
Imports System
Imports System.Linq
$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");
' Sample HTML table with product data
Dim htmlContent As String = "
<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
Dim doc As New HtmlDocument()
doc.LoadHtml(htmlContent)

' Select the HTML table element using XPath
Dim table = doc.DocumentNode.SelectSingleNode("//table")
$vbLabelText   $csharpLabel

このコードは、HTML コンテンツを HtmlDocument オブジェクトに読み込み、XPath を使用してテーブル要素をクエリして選択します。 SelectSingleNode メソッドは、HTML 内で最初に見つかったテーブルを返すため、複数のテーブルが存在する場合でも特定のテーブルを簡単に対象にすることができます。その後、各テーブル行が処理され、変換用のセル値が抽出されます。

テーブル解析に最適なXPath式はどれですか?

標準的な HTML テーブルの場合、XPath 式 //table はドキュメント内の最初のテーブルを選択します。 複数のテーブルを含む複雑なページを扱う場合、(//table)[2] のような位置セレクタを使用して、インデックスによって特定のテーブルを対象とすることができます。 テーブルに意味のある識別子が含まれている場合、//table[@id='data-table']//table[@class='products'] のような属性ベースのセレクタも役立ちます。

HTMLがライブURLから取得される場合、HtmlWebクラスを使用してドキュメントを直接読み込むことができます。

var web = new HtmlWeb();
var remoteDoc = web.Load("https://example.com/data-page");
var remoteTable = remoteDoc.DocumentNode.SelectSingleNode("//table[@class='data-table']");
var web = new HtmlWeb();
var remoteDoc = web.Load("https://example.com/data-page");
var remoteTable = remoteDoc.DocumentNode.SelectSingleNode("//table[@class='data-table']");
Dim web As New HtmlWeb()
Dim remoteDoc = web.Load("https://example.com/data-page")
Dim remoteTable = remoteDoc.DocumentNode.SelectSingleNode("//table[@class='data-table']")
$vbLabelText   $csharpLabel

これにより、HTMLを手動で保存することなく、公開されているWebページから直接テーブルを取得できます。

IronXLを使用して解析済みデータをExcelにエクスポートするにはどうすればよいですか?

IronXLを使えば、解析済みのHTMLテーブルデータを、適切な書式設定が施されたProfessionalExcelスプレッドシートに変換できます。 以下のコードは、カスタムスタイルを適用してデータをエクスポートする方法を示しています。

// 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");
Imports System
Imports System.Xml

' Create a new Excel workbook
Dim workBook As WorkBook = WorkBook.Create(ExcelFileFormat.XLSX)
Dim workSheet As WorkSheet = workBook.CreateWorkSheet("Exported Data")

' Extract and write headers
Dim headers As XmlNodeList = table.SelectNodes(".//thead/tr/th")
If headers IsNot Nothing Then
    For col As Integer = 0 To headers.Count - 1
        workSheet.SetCellValue(0, col, headers(col).InnerText.Trim())

        ' Apply header formatting
        Dim headerCell = workSheet.GetCellAt(0, col)
        headerCell.Style.Font.Bold = True
        headerCell.Style.BackgroundColor = "#4CAF50"
    Next
End If

' Extract and write data rows
Dim rows As XmlNodeList = table.SelectNodes(".//tbody/tr")
If rows IsNot Nothing Then
    For row As Integer = 0 To rows.Count - 1
        Dim cells As XmlNodeList = rows(row).SelectNodes("td")
        If cells IsNot Nothing Then
            For col As Integer = 0 To cells.Count - 1
                Dim cellValue As String = cells(col).InnerText.Trim()
                workSheet.SetCellValue(row + 1, col, cellValue)
            Next
        End If
    Next
End If

' Auto-fit columns for better readability
For col As Integer = 0 To If(headers?.Count, 0) - 1
    workSheet.AutoSizeColumn(col)
Next

' Save the Excel file
workBook.SaveAs("ExportedTable.xlsx")
$vbLabelText   $csharpLabel

このコードは、C#のExcel操作を行うためのIronXLの直感的なAPIを示しています。 新しいワークブックとワークシートを作成し、解析されたHTMLテーブルヘッダーを順に処理して、太字の書式設定と緑色の背景色を適用しながら、最初の行に配置します。 HTMLテーブルのデータ行は行ごとに処理され、各セルのテキストコンテンツが抽出されて対応するExcelセルに配置されます。 AutoSizeColumn 関数は、すべてのコンテンツが表示されるようにし、ワークブックを XLSX ファイルとして保存します。

C# IronXLを使用して HTML テーブルを Excel ファイルにエクスポートする : 画像 1 - IronXLで解析されたテーブル データ出力

以下に、元のHTMLテーブルと上記のコードの出力結果を比較した画像を示します。

C# IronXLを使用して HTML テーブルを Excel ファイルにエクスポートする : 画像 2 - 解析された Excel データと元の HTML テーブルの比較

エクスポートしたデータにセル書式を適用するにはどうすればよいですか?

上記に示した基本的な太字と背景色に加えて、 IronXLセルのスタイルを細かく制御できます。 任意のセルまたは範囲に対して、フォントサイズ、フォントの種類、テキストの配置、罫線、数値形式を設定できます。

// Apply number formatting to a price column (column index 1)
var priceRange = workSheet[$"B2:B{rows.Count + 1}"];
priceRange.FormatString = "$#,##0.00";

// Set font size on all header cells
var headerRange = workSheet[$"A1:{(char)('A' + headers.Count - 1)}1"];
headerRange.Style.Font.Height = 13; // in half-points, so 13 = 6.5pt
// Apply number formatting to a price column (column index 1)
var priceRange = workSheet[$"B2:B{rows.Count + 1}"];
priceRange.FormatString = "$#,##0.00";

// Set font size on all header cells
var headerRange = workSheet[$"A1:{(char)('A' + headers.Count - 1)}1"];
headerRange.Style.Font.Height = 13; // in half-points, so 13 = 6.5pt
' Apply number formatting to a price column (column index 1)
Dim priceRange = workSheet($"B2:B{rows.Count + 1}")
priceRange.FormatString = "$#,##0.00"

' Set font size on all header cells
Dim headerRange = workSheet($"A1:{Chr(Asc("A"c) + headers.Count - 1)}1")
headerRange.Style.Font.Height = 13 ' in half-points, so 13 = 6.5pt
$vbLabelText   $csharpLabel

列幅については、AutoSizeColumn がほとんどの場合に対応しますが、正確なレイアウトが必要な場合は、SetColumnWidth メソッドを使用して明示的に幅を設定することもできます。 これらのスタイル設定コントロールは、ワークブック全体のセルフォントスタイルを処理するIronXL APIの一部です。

複数のテーブルやエラー発生時の対処方法は?

1つのページで複数のテーブルを扱う場合は、SelectNodes("//table") を使用してすべてのテーブルを取得し、それらを反復処理して、それぞれに個別のワークシートを作成します。

var tables = doc.DocumentNode.SelectNodes("//table");
if (tables != null)
{
    for (int t = 0; t < tables.Count; t++)
    {
        WorkSheet ws = workBook.CreateWorkSheet($"Table_{t + 1}");
        var tblHeaders = tables[t].SelectNodes(".//thead/tr/th");
        var tblRows = tables[t].SelectNodes(".//tbody/tr");

        if (tblHeaders != null)
        {
            for (int col = 0; col < tblHeaders.Count; col++)
            {
                ws.SetCellValue(0, col, tblHeaders[col].InnerText.Trim());
                ws.GetCellAt(0, col).Style.Font.Bold = true;
            }
        }

        if (tblRows != null)
        {
            for (int row = 0; row < tblRows.Count; row++)
            {
                var cells = tblRows[row].SelectNodes("td");
                if (cells != null)
                {
                    for (int col = 0; col < cells.Count; col++)
                    {
                        ws.SetCellValue(row + 1, col, cells[col].InnerText.Trim());
                    }
                }
            }
        }
    }
}

workBook.SaveAs("MultiTableExport.xlsx");
var tables = doc.DocumentNode.SelectNodes("//table");
if (tables != null)
{
    for (int t = 0; t < tables.Count; t++)
    {
        WorkSheet ws = workBook.CreateWorkSheet($"Table_{t + 1}");
        var tblHeaders = tables[t].SelectNodes(".//thead/tr/th");
        var tblRows = tables[t].SelectNodes(".//tbody/tr");

        if (tblHeaders != null)
        {
            for (int col = 0; col < tblHeaders.Count; col++)
            {
                ws.SetCellValue(0, col, tblHeaders[col].InnerText.Trim());
                ws.GetCellAt(0, col).Style.Font.Bold = true;
            }
        }

        if (tblRows != null)
        {
            for (int row = 0; row < tblRows.Count; row++)
            {
                var cells = tblRows[row].SelectNodes("td");
                if (cells != null)
                {
                    for (int col = 0; col < cells.Count; col++)
                    {
                        ws.SetCellValue(row + 1, col, cells[col].InnerText.Trim());
                    }
                }
            }
        }
    }
}

workBook.SaveAs("MultiTableExport.xlsx");
Imports System

Dim tables = doc.DocumentNode.SelectNodes("//table")
If tables IsNot Nothing Then
    For t As Integer = 0 To tables.Count - 1
        Dim ws As WorkSheet = workBook.CreateWorkSheet($"Table_{t + 1}")
        Dim tblHeaders = tables(t).SelectNodes(".//thead/tr/th")
        Dim tblRows = tables(t).SelectNodes(".//tbody/tr")

        If tblHeaders IsNot Nothing Then
            For col As Integer = 0 To tblHeaders.Count - 1
                ws.SetCellValue(0, col, tblHeaders(col).InnerText.Trim())
                ws.GetCellAt(0, col).Style.Font.Bold = True
            Next
        End If

        If tblRows IsNot Nothing Then
            For row As Integer = 0 To tblRows.Count - 1
                Dim cells = tblRows(row).SelectNodes("td")
                If cells IsNot Nothing Then
                    For col As Integer = 0 To cells.Count - 1
                        ws.SetCellValue(row + 1, col, cells(col).InnerText.Trim())
                    Next
                End If
            Next
        End If
    Next
End If

workBook.SaveAs("MultiTableExport.xlsx")
$vbLabelText   $csharpLabel

HTMLの形式が不正な場合、どうすればよいですか?

現実世界のHTMLは必ずしも有効とは限りません。 外部ソースからスクレイピングされたページには、閉じタグが欠落していたり​​、tbody 構造が不整合であったり、ヘッダー行に thtd 要素が混在している場合があります。 HTML Agility Packは設計上寛容であり、ほとんどの不正なHTMLを例外をスローすることなく解析しますが、XPathセレクタが期待どおりに一致しない場合があります。

安全なパターンとしては、解析ロジックを try-catch ブロックで囲み、thead が見つからない場合に、テーブルの直下にある tr 要素を探すフォールバックを追加することです。

try
{
    var headerNodes = table.SelectNodes(".//thead/tr/th")
                     ?? table.SelectNodes(".//tr[1]/th")
                     ?? table.SelectNodes(".//tr[1]/td");

    var dataRows = table.SelectNodes(".//tbody/tr")
                  ?? table.SelectNodes(".//tr[position()>1]");

    // ... process as normal
}
catch (Exception ex)
{
    Console.WriteLine($"Table parsing failed: {ex.Message}");
}
try
{
    var headerNodes = table.SelectNodes(".//thead/tr/th")
                     ?? table.SelectNodes(".//tr[1]/th")
                     ?? table.SelectNodes(".//tr[1]/td");

    var dataRows = table.SelectNodes(".//tbody/tr")
                  ?? table.SelectNodes(".//tr[position()>1]");

    // ... process as normal
}
catch (Exception ex)
{
    Console.WriteLine($"Table parsing failed: {ex.Message}");
}
Imports System

Try
    Dim headerNodes = table.SelectNodes(".//thead/tr/th") _
                     OrElse table.SelectNodes(".//tr[1]/th") _
                     OrElse table.SelectNodes(".//tr[1]/td")

    Dim dataRows = table.SelectNodes(".//tbody/tr") _
                  OrElse table.SelectNodes(".//tr[position()>1]")

    ' ... process as normal
Catch ex As Exception
    Console.WriteLine($"Table parsing failed: {ex.Message}")
End Try
$vbLabelText   $csharpLabel

IronXLはデータ型の自動検出を自動的に行い、適切な場合に数値文字列を数値に変換します。 JavaScriptでレンダリングされたコンテンツを含むより複雑なシナリオでは、このアプローチをSelenium WebDriverPlaywrightなどのツールと組み合わせて、まずページをレンダリングし、その結果得られたHTMLをHTML Agility Packに渡して解析することができます。

Excelファイルを保存およびエクスポートするにはどうすればよいですか?

IronXLはXLSX以外にも複数の出力フォーマットをサポートしています。 後続の処理要件に応じて、XLS、CSV、TSV、またはJSON形式で保存できます。 ASP.NET Coreでは、出力をHTTPレスポンスに直接ストリーミングすることもできます。これにより、ファイルをディスクに書き込む必要がなくなります。

// Save to disk as XLSX
workBook.SaveAs("ExportedTable.xlsx");

// Save as CSV
workBook.SaveAsCsv("ExportedTable.csv");

// Stream to HTTP response (ASP.NET Core)
// Response.Headers["Content-Disposition"] = "attachment; filename=ExportedTable.xlsx";
// workBook.SaveAs(Response.BodyWriter.AsStream());
// Save to disk as XLSX
workBook.SaveAs("ExportedTable.xlsx");

// Save as CSV
workBook.SaveAsCsv("ExportedTable.csv");

// Stream to HTTP response (ASP.NET Core)
// Response.Headers["Content-Disposition"] = "attachment; filename=ExportedTable.xlsx";
// workBook.SaveAs(Response.BodyWriter.AsStream());
' Save to disk as XLSX
workBook.SaveAs("ExportedTable.xlsx")

' Save as CSV
workBook.SaveAsCsv("ExportedTable.csv")

' Stream to HTTP response (ASP.NET Core)
' Response.Headers("Content-Disposition") = "attachment; filename=ExportedTable.xlsx"
' workBook.SaveAs(Response.BodyWriter.AsStream())
$vbLabelText   $csharpLabel

HTTPレスポンスにストリーミングする場合は、attachmentに設定されていることを確認してください。そうすることで、ブラウザはレスポンスをファイルダウンロードとして扱います。 このパターンは、MVCコントローラーとRazor Pagesの両方でうまく機能します。

既存のExcelテンプレートにデータをエクスポートする必要がある場合、 IronXLは既存のワークブックを読み込み、解析されたHTMLデータを使用して名前付き範囲または特定のセルアドレスにデータを挿入し、テンプレート内のすべての書式設定を保持することができます。

PDF操作を常にtry-catchブロックでラップし、破損したまたはパスワード保護されたPDFファイルからの潜在的な例外を処理します。

本番環境でHTMLテーブルをExcelにエクスポートする際の推奨事項
懸念 推奨事項 注意事項
大規模データセット 行をバッチ処理する IronXLは数千行を処理できますが、ストリーミング出力によりメモリ負荷を回避できます。
不正な形式のHTML フォールバックXPathセレクタを使用する HTML Agility Packは寛容なので、すべてのSelectNodes呼び出しに明示的なnullチェックを追加してください。
動的コンテンツ SeleniumまたはPlaywrightでプリレンダリングする JavaScriptを多用したページでは、HTML解析の前にヘッドレスブラウザが必要です。
ファイル形式 XLSよりもXLSXを推奨します XLSX は、より多くの行、より大きなセル値、および最新のスタイル設定機能をサポートしています。
列幅 すべてのデータを書き込んだ後にAutoSizeColumnを呼び出す データ書き込み前に呼び出すと、列のサイズが小さくなります。
ライセンス 起動時にライセンスキーを設定する IronXLを呼び出す前に、 `IronXl.License.LicenseKey = "...";`を呼び出してください。

URLやデータベースクエリから取得したコンテンツを処理してさらに分析する場合、非表示フィールドの値や特別な書式設定要件などの詳細情報も処理する必要があります。 デフォルトの動作は標準的なテーブルには適していますが、各列または特定のテーブル行ごとに、フォントサイズ、フォントファミリー、その他のスタイル設定プロパティをカスタマイズすることもできます。

エクスポート後にExcel ファイルからデータを読み取る場合、 IronXL は同じ WorkBook.Load API を使用するため、往復ワークフローが簡単になります。 生成されたExcelファイルを、JSONやXMLなどの他の形式に変換して、さらに処理することも可能です。

ライセンス管理と導入はどのように行っていますか?

IronXLを本番環境で使用するにはライセンスキーが必要です。 無料トライアルではすべての機能が利用でき、購入前にライブラリを評価するのに最適です。 料金プランとライセンスオプションを確認し、チームに最適なプランを見つけてください。

IronXLは、Docker、Azure Functions、またはLinux環境にデプロイする場合、Microsoft OfficeやCOM相互運用に依存しないため、依存関係の管理が容易です。 .NET 10 、 .NET 9、 .NET 8、 .NET Framework 4.6.2以降をサポートし、現在のASP.NET Coreエクスポートパターンと完全に互換性があります。

IronXLとHTML Agility Packを組み合わせることで、HTMLテーブルをC#でExcelにエクスポートするための柔軟なソリューションが実現します。 ここで紹介する手法は、柔軟性に欠ける組み込みメソッドよりも優れた制御性を提供し、IronXLのExcelの全機能を活用しながら複雑なHTML構造を扱うことができます。

ウェブスクレイパーの構築、データベースからのレガシーデータの移行、レポート生成の自動化、大規模データセットのデータ分析など、どのような用途であっても、このソリューションはEnterpriseのニーズに合わせて拡張可能です。 コード例では、静的なHTML文字列からURL経由で取得される動的なコンテンツまで、さまざまな入力ソースを処理する方法を示しています。 結果はダウンロード用にエクスポートしたり、 .NETアプリケーションでさらに処理したりできます。

HTMLデータをProfessionalのExcelファイルに変換する準備はできていますか? 今すぐIronXLの無料トライアルを開始して、Officeに依存することなく、プログラムによるExcel操作の柔軟性を体験してください。

よくある質問

ビジネスアプリケーションで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ボットを作成したりして、技術に対する愛情と創造性を組み合わせています。

アイアンサポートチーム

私たちは週5日、24時間オンラインで対応しています。
チャット
メール
電話してね