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

Microsoft Officeを使わずにC#でExcelファイルを開く方法

IronXLは、Microsoft Officeをインストールすることなく、C#でExcelファイルを開いて読むことができます。NuGetパッケージをインストールし、@--CODE-43325--@@でワークブックをロードするだけで、任意のワークシート、セル、範囲にアクセスし、値を入力し、自動的に書式を検出します。

Microsoft Officeを使わずにプログラムでExcelファイルを開こうとしたことがある人なら、従来の相互運用(Interop)のアプローチがいかに厄介なものかご存知でしょう。 相互運用機能は、Excel自体がインストールされていることを前提としており、複雑なCOM参照を必要とし、特にOfficeが利用できないサーバーやクラウド環境では、バージョン競合を引き起こすことがよくあります。

IronXLは、Officeへの依存を必要とせずに、XLSX、XLS、CSV、TSVファイルを直接読み込むことができる最新の.NETライブラリです。 クリーンで信頼性の高いC#コードを記述し、Windows、Linux、またはクラウド上でExcelファイルを処理することが可能です。COMによる自動化に伴うあらゆる煩雑な作業を回避できます。 このガイドでは、インストールから、Excelワークブックを開いて読み込むための実用的なパターンまで、すべてを網羅的に解説します。

.NETプロジェクトにIronXLをインストールするにはどうすればよいですか?

使い始めるのにかかる時間はほんの数秒です。 プロジェクトを開き、以下のいずれかのパッケージマネージャーを使用してください。

Install-Package IronXL
dotnet add package IronXL
Install-Package IronXL
dotnet add package IronXL
SHELL

または、Visual Studio を開き、プロジェクトを右クリックして" NuGetパッケージの管理"を選択し、"IronXL"を検索して"インストール"をクリックします。 インストールガイドでは、DockerやAzureを含む、すべてのサポート対象環境について解説しています。

Visual Studio NuGet Package Managerにバージョン2025.9.1のIronXL.Excelパッケージがインストールされています

インストールが完了したら、ファイルの先頭に名前空間を追加してください。

using IronXL;
using IronXL;
Imports IronXL
$vbLabelText   $csharpLabel

必要なのはその一行だけです。 複雑なCOM参照、Officeへの依存関係、バージョン固有のアセンブリは一切ありません。 無料の評価キーを入手するには、 IronXLのトライアルライセンスページをご覧ください。

IronXLが従来の相互運用性よりも優れている理由は?

従来のExcel相互運用では、コードを実行するすべてのマシンにMicrosoft Officeがインストールされている必要があります。 これは、サーバーのデプロイ、AWS Lambda関数、およびコンテナ化されたアプリケーションには非現実的です。 IronXLはExcelファイルの解析処理をすべて内部で行い、外部依存関係のないクリーンなAPIを提供します。

Interopでは、メモリリークを防ぐためにCOMオブジェクトのライフタイムを注意深く管理する必要があります。 IronXLは標準の.NETガベージコレクションを使用するため、COMのクリーンアップについて考える必要は一切ありません。

このライブラリは、 .NET Framework 4.6.2以降、および.NET 5、6、7、8、10をサポートしています。Windows、macOS、Linux上で変更なしで動作します。 クロスプラットフォーム環境を想定している場合、この点だけでも、Windows専用のOffice InteropよりもIronXLの方がはるかに適していると言えるでしょう。

インストールが正常に完了したことをどのように確認しますか?

インストール後、任意のExcelファイルを読み込んでセル値を出力する簡単なテストを作成してください。 プロジェクトがエラーなくビルドされ、出力が期待されるデータと一致した場合、セットアップは完了です。 IronXLのドキュメントには、この検証手順を詳細に説明したクイックスタートセクションが含まれています。

セットアップ時によくある間違いは、ワークブックを本番環境に読み込む前にライセンスキーを適用するのを忘れてしまうことです。 試用モードでは、ライブラリは生成されるすべてのファイルに小さな透かしを追加します。 アプリケーションの起動時にIronXL.License.LicenseKey@を設定し、すべての操作が最初から正しいライセンスの下で実行されるようにします。

Excelワークブックを開いてセルの値を読み取るにはどうすればよいですか?

コアとなるAPIはシンプルです。 ワークブックを読み込み、ワークシートを選択し、アドレスまたは反復処理によってセルにアクセスします。

using IronXL;

// Load any Excel file -- XLSX, XLS, CSV, or TSV
WorkBook workbook = WorkBook.Load("example.xlsx");

// Access the second worksheet (zero-indexed)
WorkSheet worksheet = workbook.WorkSheets[1];

// Read a specific cell value
decimal revenue = worksheet["E2"].DecimalValue;
Console.WriteLine($"Order Total: {revenue}");

// Iterate over a range of cells
foreach (var cell in worksheet["C2:C6"])
{
    Console.WriteLine($"Product: {cell.Text}");
}
using IronXL;

// Load any Excel file -- XLSX, XLS, CSV, or TSV
WorkBook workbook = WorkBook.Load("example.xlsx");

// Access the second worksheet (zero-indexed)
WorkSheet worksheet = workbook.WorkSheets[1];

// Read a specific cell value
decimal revenue = worksheet["E2"].DecimalValue;
Console.WriteLine($"Order Total: {revenue}");

// Iterate over a range of cells
foreach (var cell in worksheet["C2:C6"])
{
    Console.WriteLine($"Product: {cell.Text}");
}
Imports IronXL

' Load any Excel file -- XLSX, XLS, CSV, or TSV
Dim workbook As WorkBook = WorkBook.Load("example.xlsx")

' Access the second worksheet (zero-indexed)
Dim worksheet As WorkSheet = workbook.WorkSheets(1)

' Read a specific cell value
Dim revenue As Decimal = worksheet("E2").DecimalValue
Console.WriteLine($"Order Total: {revenue}")

' Iterate over a range of cells
For Each cell In worksheet("C2:C6")
    Console.WriteLine($"Product: {cell.Text}")
Next
$vbLabelText   $csharpLabel

自動的にファイル形式を検出するため、XLSかXLSXかを指定する必要はありません。 CODE-43331を使用して、インデックスまたは名前からワークシートにアクセスできます。 各セルは、@--CODE-43332--@、@--CODE-43333--@、@--CODE-43334--@、@--CODE-43335--@のような型付きプロパティを公開しています。

ファイルを開く方法の詳細については、"ワークブックを開く"手順ガイドを参照してください。

左側に注文データを含むExcelスプレッドシートを、右側に抽出されたデータを表示するVisual Studioデバッグコンソールを示す分割画面

名前でワークシートにアクセスするにはどうすればよいですか?

ワークシート名を使用する方が、数値インデックスを使用するよりも保守性が高く、特にワークブックが他のユーザーによって編集される場合にその利点が顕著になります。 次の例は、シートを名前で検索し、すべてのシートを反復処理する方法を示しています。

using IronXL;

WorkBook workbook = WorkBook.Load("inventory.xlsx");

// Access worksheet by exact name
WorkSheet salesSheet = workbook.GetWorkSheet("Sales Data");
Console.WriteLine($"Sales sheet rows: {salesSheet.RowCount}");

// Iterate all worksheets in the workbook
foreach (WorkSheet sheet in workbook.WorkSheets)
{
    if (sheet.Name.Contains("Inventory"))
    {
        Console.WriteLine($"Found inventory sheet: {sheet.Name}");
    }
}
using IronXL;

WorkBook workbook = WorkBook.Load("inventory.xlsx");

// Access worksheet by exact name
WorkSheet salesSheet = workbook.GetWorkSheet("Sales Data");
Console.WriteLine($"Sales sheet rows: {salesSheet.RowCount}");

// Iterate all worksheets in the workbook
foreach (WorkSheet sheet in workbook.WorkSheets)
{
    if (sheet.Name.Contains("Inventory"))
    {
        Console.WriteLine($"Found inventory sheet: {sheet.Name}");
    }
}
Imports IronXL

Dim workbook As WorkBook = WorkBook.Load("inventory.xlsx")

' Access worksheet by exact name
Dim salesSheet As WorkSheet = workbook.GetWorkSheet("Sales Data")
Console.WriteLine($"Sales sheet rows: {salesSheet.RowCount}")

' Iterate all worksheets in the workbook
For Each sheet As WorkSheet In workbook.WorkSheets
    If sheet.Name.Contains("Inventory") Then
        Console.WriteLine($"Found inventory sheet: {sheet.Name}")
    End If
Next
$vbLabelText   $csharpLabel

Excelファイルの読み取りガイドでは、動的に生成されたシート名を持つワークブックの操作を含め、ワークシートへのアクセス方法についてさらに詳しく説明しています。

Excelのセルから様々なデータ型を読み取るにはどうすればよいですか?

IronXLは、一般的なExcelデータ型すべてに対応する型付きアクセサーを提供します。 文字列、整数、小数、日付、ブール値、数式の結果を、手動で解析することなく読み込むことができます。

using IronXL;

WorkBook wb = WorkBook.Load(@"C:\Data\Inventory.xlsx");
WorkSheet ws = wb.GetWorkSheet("Products");

// Read different data types directly
文字列 productName = ws["A2"].StringValue;
int quantity       = ws["B2"].IntValue;
decimal price      = ws["C2"].DecimalValue;
日時 updated   = ws["D2"].日時Value;

// Use aggregate functions on ranges for performance
decimal totalStock = ws["B2:B100"].Sum();
decimal maxPrice   = ws["C2:C100"].Max();

Console.WriteLine($"Product: {productName}, Qty: {quantity}, Price: {price:C}");
Console.WriteLine($"Total stock units: {totalStock}, Highest price: {maxPrice:C}");
using IronXL;

WorkBook wb = WorkBook.Load(@"C:\Data\Inventory.xlsx");
WorkSheet ws = wb.GetWorkSheet("Products");

// Read different data types directly
文字列 productName = ws["A2"].StringValue;
int quantity       = ws["B2"].IntValue;
decimal price      = ws["C2"].DecimalValue;
日時 updated   = ws["D2"].日時Value;

// Use aggregate functions on ranges for performance
decimal totalStock = ws["B2:B100"].Sum();
decimal maxPrice   = ws["C2:C100"].Max();

Console.WriteLine($"Product: {productName}, Qty: {quantity}, Price: {price:C}");
Console.WriteLine($"Total stock units: {totalStock}, Highest price: {maxPrice:C}");
Imports IronXL

Dim wb As WorkBook = WorkBook.Load("C:\Data\Inventory.xlsx")
Dim ws As WorkSheet = wb.GetWorkSheet("Products")

' Read different data types directly
Dim productName As String = ws("A2").StringValue
Dim quantity As Integer = ws("B2").IntValue
Dim price As Decimal = ws("C2").DecimalValue
Dim updated As DateTime = ws("D2").DateTimeValue

' Use aggregate functions on ranges for performance
Dim totalStock As Decimal = ws("B2:B100").Sum()
Dim maxPrice As Decimal = ws("C2:C100").Max()

Console.WriteLine($"Product: {productName}, Qty: {quantity}, Price: {price:C}")
Console.WriteLine($"Total stock units: {totalStock}, Highest price: {maxPrice:C}")
$vbLabelText   $csharpLabel

以下の表は、利用可能な型付きアクセサーをまとめたものです。

データ型によるIronXLセル値アクセサー
アクセサリー 戻り値の型 注意事項
StringValue 文字列 数値セルであっても常に文字列を返します。
IntValue int 小数値を切り捨てる
DecimalValue decimal 財務データに最適
DoubleValue double 科学的または浮動小数点値の場合
日時Value 日時 Excelのシリアル日付番号を自動的に解析します
ブール値 ブール TRUE/FALSEセルを読み取る
数式 文字列 数式テキストを返します。例=SUM(A2:D2)

セルデータの読み書きに関する詳細については、セル書式設定ガイドおよびデータインポートの手順を参照してください。

商品、数量、価格、最終更新日の列を持つ商品在庫データを表示するExcelスプレッドシートと、C#を使用してプログラムで読み込んだ同じデータを表示するVisual Studioデバッグコンソール

空のセルやヌルセルを安全に処理するにはどうすればよいですか?

実際のExcelファイルでは、空のセルはよく見られます。 型付けされたアクセサを読む前に、IsEmptyプロパティを使用するか、Valueのnullをチェックしてください:

using IronXL;

WorkBook workbook = WorkBook.Load("data.xlsx");
WorkSheet ws = workbook.DefaultWorkSheet;

// Check if a cell is empty before reading
if (!ws["A1"].IsEmpty)
{
    Console.WriteLine(ws["A1"].StringValue);
}

// Provide a fallback value using a null-coalescing pattern
文字列 cellText = ws["A1"].StringValue ?? "Default Value";

// Iterate a range and skip empty cells
foreach (var cell in ws["A1:A20"])
{
    if (!cell.IsEmpty)
    {
        Console.WriteLine(cell.Text);
    }
}
using IronXL;

WorkBook workbook = WorkBook.Load("data.xlsx");
WorkSheet ws = workbook.DefaultWorkSheet;

// Check if a cell is empty before reading
if (!ws["A1"].IsEmpty)
{
    Console.WriteLine(ws["A1"].StringValue);
}

// Provide a fallback value using a null-coalescing pattern
文字列 cellText = ws["A1"].StringValue ?? "Default Value";

// Iterate a range and skip empty cells
foreach (var cell in ws["A1:A20"])
{
    if (!cell.IsEmpty)
    {
        Console.WriteLine(cell.Text);
    }
}
Imports IronXL

Dim workbook As WorkBook = WorkBook.Load("data.xlsx")
Dim ws As WorkSheet = workbook.DefaultWorkSheet

' Check if a cell is empty before reading
If Not ws("A1").IsEmpty Then
    Console.WriteLine(ws("A1").StringValue)
End If

' Provide a fallback value using a null-coalescing pattern
Dim cellText As String = If(ws("A1").StringValue, "Default Value")

' Iterate a range and skip empty cells
For Each cell In ws("A1:A20")
    If Not cell.IsEmpty Then
        Console.WriteLine(cell.Text)
    End If
Next
$vbLabelText   $csharpLabel

Excelファイルドキュメントには、ワークシート内で最後に使用された行と列を検出する方法など、疎なデータを扱うための追加のパターンが記載されています。

空のセルを扱う際に考慮すべきもう一つの点は、真の空白セルと空の文字列を含むセルとの違いです。 CODE-43338--@@は、セルに値が全く含まれていない場合にのみ真を返し、@@--CODE-43339--@は、空白のセルと@@--CODE-43340--@に明示的に設定されたセルの両方に対して空の文字列を返します。 データに空白に見えるテキスト形式のセルがある場合は、最も正確な結果を得るために、IsEmpty文字列.IsNullOrWhiteSpace(cell.StringValue)の両方をチェックしてください。

実運用可能なExcelリーダーを構築するにはどうすればよいでしょうか?

実用的なExcelリーダーには、ファイル検証、エラー処理、複数シートのサポート、およびオプションの出力生成機能が必要です。 次の例は、これらのパターンすべてを単一のクラスで示しています。

using IronXL;
using System.IO;

// Validate and load the file
static List<文字列> CheckLowStock(文字列 filePath)
{
    var lowStockItems = new List<文字列>();

    if (!File.Exists(filePath))
    {
        Console.WriteLine($"File not found: {filePath}");
        return lowStockItems;
    }

    文字列 ext = Path.GetExtension(filePath).ToLower();
    if (ext is not (".xlsx" or ".xls" or ".csv"))
    {
        Console.WriteLine($"Unsupported file type: {ext}");
        return lowStockItems;
    }

    try
    {
        WorkBook workbook = WorkBook.Load(filePath);

        foreach (WorkSheet sheet in workbook.WorkSheets)
        {
            Console.WriteLine($"Checking sheet: {sheet.Name}");

            for (int row = 2; row <= sheet.RowCount; row++)
            {
                文字列 itemName  = sheet[$"A{row}"].StringValue;
                int stockLevel   = sheet[$"B{row}"].IntValue;

                if (stockLevel < 10 && !文字列.IsNullOrEmpty(itemName))
                {
                    lowStockItems.Add($"{itemName} -- {stockLevel} units ({sheet.Name})");
                }
            }
        }
    }
    catch (Exception ex)
    {
        Console.WriteLine($"Error reading Excel file: {ex.Message}");
    }

    return lowStockItems;
}

// Export results to a new workbook
static void ExportReport(List<文字列> items, 文字列 outputPath)
{
    WorkBook report     = WorkBook.Create();
    WorkSheet sheet     = report.CreateWorkSheet("Low Stock Report");

    sheet["A1"].Value   = "Item Description";
    sheet["B1"].Value   = "Source Sheet";

    sheet["A1:B1"].Style.Font.Bold        = true;
    sheet["A1:B1"].Style.BackgroundColor  = "#4472C4";
    sheet["A1:B1"].Style.Font.Color       = "#FFFFFF";

    int rowIndex = 2;
    foreach (文字列 item in items)
    {
        sheet[$"A{rowIndex}"].Value = item;
        rowIndex++;
    }

    report.SaveAs(outputPath);
    Console.WriteLine($"Report saved to: {outputPath}");
}

// Run
var lowStockItems = CheckLowStock("inventory.xlsx");
ExportReport(lowStockItems, "low-stock-report.xlsx");
using IronXL;
using System.IO;

// Validate and load the file
static List<文字列> CheckLowStock(文字列 filePath)
{
    var lowStockItems = new List<文字列>();

    if (!File.Exists(filePath))
    {
        Console.WriteLine($"File not found: {filePath}");
        return lowStockItems;
    }

    文字列 ext = Path.GetExtension(filePath).ToLower();
    if (ext is not (".xlsx" or ".xls" or ".csv"))
    {
        Console.WriteLine($"Unsupported file type: {ext}");
        return lowStockItems;
    }

    try
    {
        WorkBook workbook = WorkBook.Load(filePath);

        foreach (WorkSheet sheet in workbook.WorkSheets)
        {
            Console.WriteLine($"Checking sheet: {sheet.Name}");

            for (int row = 2; row <= sheet.RowCount; row++)
            {
                文字列 itemName  = sheet[$"A{row}"].StringValue;
                int stockLevel   = sheet[$"B{row}"].IntValue;

                if (stockLevel < 10 && !文字列.IsNullOrEmpty(itemName))
                {
                    lowStockItems.Add($"{itemName} -- {stockLevel} units ({sheet.Name})");
                }
            }
        }
    }
    catch (Exception ex)
    {
        Console.WriteLine($"Error reading Excel file: {ex.Message}");
    }

    return lowStockItems;
}

// Export results to a new workbook
static void ExportReport(List<文字列> items, 文字列 outputPath)
{
    WorkBook report     = WorkBook.Create();
    WorkSheet sheet     = report.CreateWorkSheet("Low Stock Report");

    sheet["A1"].Value   = "Item Description";
    sheet["B1"].Value   = "Source Sheet";

    sheet["A1:B1"].Style.Font.Bold        = true;
    sheet["A1:B1"].Style.BackgroundColor  = "#4472C4";
    sheet["A1:B1"].Style.Font.Color       = "#FFFFFF";

    int rowIndex = 2;
    foreach (文字列 item in items)
    {
        sheet[$"A{rowIndex}"].Value = item;
        rowIndex++;
    }

    report.SaveAs(outputPath);
    Console.WriteLine($"Report saved to: {outputPath}");
}

// Run
var lowStockItems = CheckLowStock("inventory.xlsx");
ExportReport(lowStockItems, "low-stock-report.xlsx");
Imports IronXL
Imports System.IO

' Validate and load the file
Private Shared Function CheckLowStock(filePath As String) As List(Of String)
    Dim lowStockItems As New List(Of String)()

    If Not File.Exists(filePath) Then
        Console.WriteLine($"File not found: {filePath}")
        Return lowStockItems
    End If

    Dim ext As String = Path.GetExtension(filePath).ToLower()
    If ext <> ".xlsx" AndAlso ext <> ".xls" AndAlso ext <> ".csv" Then
        Console.WriteLine($"Unsupported file type: {ext}")
        Return lowStockItems
    End If

    Try
        Dim workbook As WorkBook = WorkBook.Load(filePath)

        For Each sheet As WorkSheet In workbook.WorkSheets
            Console.WriteLine($"Checking sheet: {sheet.Name}")

            For row As Integer = 2 To sheet.RowCount
                Dim itemName As String = sheet($"A{row}").StringValue
                Dim stockLevel As Integer = sheet($"B{row}").IntValue

                If stockLevel < 10 AndAlso Not String.IsNullOrEmpty(itemName) Then
                    lowStockItems.Add($"{itemName} -- {stockLevel} units ({sheet.Name})")
                End If
            Next
        Next
    Catch ex As Exception
        Console.WriteLine($"Error reading Excel file: {ex.Message}")
    End Try

    Return lowStockItems
End Function

' Export results to a new workbook
Private Shared Sub ExportReport(items As List(Of String), outputPath As String)
    Dim report As WorkBook = WorkBook.Create()
    Dim sheet As WorkSheet = report.CreateWorkSheet("Low Stock Report")

    sheet("A1").Value = "Item Description"
    sheet("B1").Value = "Source Sheet"

    sheet("A1:B1").Style.Font.Bold = True
    sheet("A1:B1").Style.BackgroundColor = "#4472C4"
    sheet("A1:B1").Style.Font.Color = "#FFFFFF"

    Dim rowIndex As Integer = 2
    For Each item As String In items
        sheet($"A{rowIndex}").Value = item
        rowIndex += 1
    Next

    report.SaveAs(outputPath)
    Console.WriteLine($"Report saved to: {outputPath}")
End Sub

' Run
Dim lowStockItems As List(Of String) = CheckLowStock("inventory.xlsx")
ExportReport(lowStockItems, "low-stock-report.xlsx")
$vbLabelText   $csharpLabel

この例ではトップレベルのステートメントを使用し、ワークフロー全体を網羅しています。具体的には、ファイルパスと拡張子の検証、ワークブックの読み込み、すべてのワークシートの反復処理、ビジネスロジックの適用、そして結果を新しいファイルに書き込みます。ワークブックの作成と保存に関する詳細は、"Excel ファイルの書き込み"ガイドおよび"Excel のエクスポート"手順を参照してください。

CODE-43343--@@メソッドは、ソースファイルを変更するのではなく、WorkBook.Create()@で新しいワークブックを作成することに注意してください。ソースファイルと出力ファイルを分離しておくことは、監査証跡のために良い習慣であり、他のプロセスが依存するデータを誤って上書きすることを避ける。 既存のワークブックにデータを追加する必要がある場合は、WorkBook.Load()でロードし、適切なワークシートに行を追加し、SaveAs()を新しいパスにコールするか、その場で上書きしてください。

大容量のExcelファイルを効率的に処理するにはどうすればよいでしょうか?

数千行のファイルの場合、集計関数は各セルを個別のオブジェクトとして具体化することなく内部的に動作するため、手動ループよりも優れたパフォーマンスを発揮します。

using IronXL;

WorkBook workbook = WorkBook.Load("large-dataset.xlsx");
WorkSheet ws      = workbook.DefaultWorkSheet;

// Fast: aggregate functions operate on the range directly
decimal total   = ws["B2:B5000"].Sum();
decimal average = ws["B2:B5000"].Avg();
int count       = ws["B2:B5000"].Count();

Console.WriteLine($"Total: {total:C}, Average: {average:C}, Rows: {count}");

// Export the worksheet to a DataSet for LINQ or database operations
var dataSet = workbook.ToDataSet();
Console.WriteLine($"DataSet tables: {dataSet.Tables.Count}");
using IronXL;

WorkBook workbook = WorkBook.Load("large-dataset.xlsx");
WorkSheet ws      = workbook.DefaultWorkSheet;

// Fast: aggregate functions operate on the range directly
decimal total   = ws["B2:B5000"].Sum();
decimal average = ws["B2:B5000"].Avg();
int count       = ws["B2:B5000"].Count();

Console.WriteLine($"Total: {total:C}, Average: {average:C}, Rows: {count}");

// Export the worksheet to a DataSet for LINQ or database operations
var dataSet = workbook.ToDataSet();
Console.WriteLine($"DataSet tables: {dataSet.Tables.Count}");
Imports IronXL

Dim workbook As WorkBook = WorkBook.Load("large-dataset.xlsx")
Dim ws As WorkSheet = workbook.DefaultWorkSheet

' Fast: aggregate functions operate on the range directly
Dim total As Decimal = ws("B2:B5000").Sum()
Dim average As Decimal = ws("B2:B5000").Avg()
Dim count As Integer = ws("B2:B5000").Count()

Console.WriteLine($"Total: {total:C}, Average: {average:C}, Rows: {count}")

' Export the worksheet to a DataSet for LINQ or database operations
Dim dataSet = workbook.ToDataSet()
Console.WriteLine($"DataSet tables: {dataSet.Tables.Count}")
$vbLabelText   $csharpLabel

複数のシートにまたがってLINQクエリを実行したり、リレーショナルデータベースにデータをロードしたりする必要がある場合は、DataSet@への変換が特に効果的です。 各ワークシートは、DataTable@の内部でDataSet@となり、既存のデータ・アクセス・コードと簡単に連携できます。 詳細については、"Excel から DataSet への変換"ガイドを参照してください。

ライセンスを取得して本番環境にデプロイするにはどうすればよいですか?

IronXLは商用ライブラリであり、開発およびテスト中にすべての機能を利用できる無料トライアル版が用意されています。 本番環境への導入には、有効なライセンスキーが必要です。 開発者向け、チーム向け、Enterprise向けなど、ライセンス階層の詳細については、 IronXLのライセンスページをご覧ください。

ライセンスキーを適用するには、 IronXLの呼び出しを行う前に設定してください。

IronXL.License.LicenseKey = "YOUR-LICENSE-KEY-HERE";
IronXL.License.LicenseKey = "YOUR-LICENSE-KEY-HERE";
Imports IronXL

IronXL.License.LicenseKey = "YOUR-LICENSE-KEY-HERE"
$vbLabelText   $csharpLabel

IronXLの機能概要では、ファイルの読み書きからグラフの作成、条件付き書式の適用、名前付き範囲の操作まで、すべての機能をまとめています。 Excelファイルの作成ガイドセルの結合方法に関するハウツーは、新しいワークブックを作成する際の有用な出発点となります。

C# による Excel 自動化に関するコミュニティでの議論や質問については、 Microsoft の Q&A フォーラムStack Overflowが役立つリソースです。 NuGetの公式パッケージページには、バージョン履歴とダウンロード統計情報が掲載されています。

C#でExcelファイルを開く際の重要なポイントは何ですか?

IronXLはMicrosoft Officeへの依存を完全に排除するため、サーバー上、コンテナ内、クラウド機能上でExcelファイルを処理することが実用的になります。 APIはシンプルなパターンに従います。ワークブックを読み込み、名前またはインデックスでワークシートにアクセスし、型付きアクセサーを使用してセルを読み取ります。 CODE-43350--@@、@@--CODE-43351--@、@--CODE-43352--@のような集計関数は、手作業による反復処理のオーバーヘッドなしに大規模なデータセットを処理します。

このライブラリは、XLSX、XLS、CSV、TSV形式をサポートし、 .NET 10およびすべての最新の.NETバージョンで動作し、クロスプラットフォームに対応しています。 IronXLは標準的な.NET例外をスローするので、エラー処理は簡単で、使い慣れたtry/catchパターンでキャッチできます。 利用可能なすべてのオプションを確認するには、IronXLのドキュメントトップページから始めるか、ステップバイステップの参考資料として"ワークブックの開き方"ガイドをお試しください。

IronXLの無料トライアルを開始して、ご自身のプロジェクトでライブラリを評価してみてはいかがでしょうか。一切の義務は発生しません。

今IronXLを始めましょう。
green arrow pointer

よくある質問

どのようにしてVB.NETでMicrosoft Officeを使わずにエクセルファイルを開くことができますか?

IronXLライブラリを使用することで、VB.NETでMicrosoft Officeを使わずにエクセルファイルを開いて読むことができます。IronXLは、Microsoft Officeや複雑なInteropメソッドなしでエクセルファイルを操作するための簡単な方法を提供します。

VB.NETでエクセル処理のためにIronXLを使用する利点は何ですか?

IronXLは、VB.NETでエクセル処理を簡略化し、Microsoft Officeや複雑なCOM参照が不要で、サーバーやクラウドプラットフォームなどの異なる環境間の互換性を保証し、バージョンの衝突を防ぎます。

IronXLを使用してXLSXおよびXLSファイルの両方を処理することは可能ですか?

はい、IronXLは、XLSXおよびXLSのファイル形式の処理をサポートしており、VB.NETアプリケーションでこれらのExcelファイルを開き、読み取り、操作することができます。

IronXLを使用するために追加のソフトウェアをインストールする必要がありますか?

VB.NETでのエクセルファイル処理にIronXLを使用するために追加のソフトウェアは必要ありません。IronXLは単独で動作し、VB.NETプロジェクトに直接統合されます。

IronXLはクラウド環境で使用できますか?

はい、IronXLはクラウド環境でシームレスに動作するように設計されており、従来のExcel Interop方法でよく発生するバージョンの衝突を回避します。

IronXLはどのようにエクセルファイルの互換性を処理しますか?

IronXLは、XLSXやXLSなどの複数のExcelファイル形式をサポートすることで互換性を保証し、Microsoft Officeに依存せずにそれらのファイルを操作および処理するための強力な機能を提供します。

IronXLは異なるVB.NETバージョンとの互換性がありますか?

IronXLは、.NETフレームワークの異なるバージョンで作業する開発者のための多用途なソリューションとして、様々なVB.NETバージョンと互換性があります。

VB.NETでエクセルに伝統的なInteropメソッドを使用する場合の一般的な課題は何ですか?

伝統的なInteropメソッドはしばしばMicrosoft Officeを必要とし、複雑なCOM参照が含まれ、特にサーバーやクラウド環境でバージョンの衝突を引き起こしやすいです。IronXLは、これらの課題に対し、信頼性があり簡単なアプローチを提供します。

IronXLは、例えばデータの編集やエクスポートなど、エクセルファイル操作に使用できますか?

はい、IronXLは、エクセルファイルの読み取りだけでなく、編集やデータのエクスポートのための機能を提供し、VB.NETにおけるエクセルファイル操作ための包括的なツールです。

VB.NETでのIronXLの使い方に関する作業コード例をどこで見つけられますか?

IronXLのドキュメントやチュートリアルには、VB.NETでMicrosoft Officeを使わずにエクセルファイルを処理するためのステップバイステップのガイダンスと作業コード例が提供されています。

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

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

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

アイアンサポートチーム

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