IronXLとClosedXMLの比較
今日のアプリケーションでは、Excelファイルを使用してデータベースやレポートを生成する必要があります。 現在、Microsoft Excelなしでこれを実現するライブラリが多数あります。
この記事では、C# .NETテクノロジーを使用してプログラム的にMicrosoft Excel文書の作業を行う方法を、Excelレポートを読み取り、操作し、書き込むための最も人気のある2つのライブラリ、IronXLとClosedXMLを比較しながら説明します。
IronXLとClosedXMLの両方が、.NETフレームワークでExcel文書を作成、編集、読み取る方法を提供します。 次に、どのC# Excelライブラリがプロジェクトに最適かを決定する必要があります。 この記事は、あなたのアプリケーションに最適なオプションを決定するのに役立ちます。
まずは両方のライブラリが提供するものを見て、その後に実際の比較に進みましょう。
IronXLライブラリ
IronXLは、C#を使用してMicrosoft Excelドキュメントを読み取り、編集するための.NETライブラリです。 IronXL.Excelは、さまざまなスプレッドシート形式を読み取るためのスタンドアローンの.NETソフトウェアライブラリです。 Microsoft Excelがインストールされている必要はなく、Interopにも依存しません。
IronXLは直感的なC# APIであり、Excelスプレッドシートファイルを.NETで超高速で読み取り、編集、作成できます。 IronXLは、.NET Core、.NET Framework、Xamarin、モバイル、Linux、macOS、およびAzureを完全にサポートしています。
IronXLは、C#のための.NET Coreおよび.NET Framework上の主要なExcelスプレッドシートライブラリです。
IronXLの機能セット
- XLS/XLSX/CSV/TSVからデータを読み込み、編集します
- XLS/XLSX/CSV/TSV/JSONに保存およびエクスポートします
- System.Dataオブジェクト:System.Data.DataSetおよびSystem.Data.DataTableオブジェクトとしてExcelスプレッドシートを操作します。
- 数式:シートが編集されるたびに再計算されるExcel数式を操作します。
- 範囲:使いやすいWorkSheet ["A1:B10"]構文。 直感的に範囲を結合・作成します。
- ソート:範囲、列、行をソートします。
- スタイリング:セルのビジュアルスタイル、フォント、サイズ、背景パターン、境界、配置、数値形式。
IronXLのその他の機能はこのリンクで探ることができます。
ClosedXML
ClosedXMLはExcel 2007+ (.xlsx, .xlsm)ファイルを読み取り、操作し、書き込むための.NETライブラリです。 OpenXMLライブラリに対する直感的でユーザーフレンドリーなインターフェースを提供することを目指しています。 .xlsxは、Microsoft Excelで使用されるOpenXMLベースのAPIスプレッドシートファイル形式のファイル拡張子です。 .xlsmファイルはマクロをサポートしています。 .xltmはマクロ対応のテンプレートファイルです。 .xls形式はプロプライエタリなバイナリ形式であり、.xlsxはOffice OpenXML形式に基づいています。
ClosedXMLは、実行コードを実行しているマシンにExcelをインストールせずに、Microsoft Excelでのレポート生成のための.NETライブラリです。
ClosedXMLの機能
ClosedXMLには、API関数が豊富でExcelのコンテンツの作成と抽出を扱うためのユーザーフレンドリーなインターフェースがあります。 これらのAPI呼び出しやプルリクエストを使用することで、Excelシートやワークブックのあらゆる細部を変更できます。 すべての機能は以下にリストされています:
- 数式
- 検証
- ハイパーリンク
- 保護 (シートおよびセルレベル)
- 条件付き書式設定
- ペインの固定
- Tables
- Ranges
- スタイリング
- ページ設定 (印刷)
- オートフィルター
- コメント
この記事の残りの部分は次の通りです:
- コンソールアプリケーションの作成
- IronXL C#ライブラリのインストール
- ClosedXMLのインストール
- 新しいExcelワークブックとシートを作成して保存
- Excelファイルを読み取る
- Excelの数式を使った作業
- ライセンス
- まとめと結論
1. コンソールアプリケーションを作成
コンソールアプリケーションを作成する手順は以下の通りです:
- Visual Studio 2022 IDEを開始。
- "新しいプロジェクトを作成します。"をクリックします
- "新しいプロジェクトを作成する"ページで、言語ドロップダウンリストからC#を選び、プラットフォームリストからWindowsを選び、プロジェクトタイプリストからコンソールを選びます。
- 表示されたプロジェクトテンプレートからConsole App (.NET Framework)を選択します。

プロジェクトを作成する
- 次へをクリック。
- プロジェクトに"DemoApp"と名前を付け、"次へ"をクリックします。

デモアプリプロジェクト
- 追加情報画面で、使用するフレームワークバージョンを指定します。 この例では.NET フレームワーク 6.0を使用します。

.NET フレームワーク 6.0
- 作成をクリックしてプロセスを完了させます。
これでプロジェクトが作成され、ライブラリをテストする準備がほぼ整いました。 ただし、ライブラリをプロジェクトにインストールして統合する必要があります。 まずIronXLをインストールしましょう。
2. IronXL C#ライブラリのインストール
次の方法を使用してIronXLライブラリをダウンロードしてインストールできます:
- NuGetパッケージを使用したVisual Studio経由で。
- DLLを手動でインストールする。
それぞれを詳しく見てみましょう。
2.1. NuGetパッケージを使用したVisual Studioの使用
Visual Studioは、NuGetパッケージをプロジェクトにインストールするNuGetパッケージマネージャーを提供しています。 これにアクセスするには、プロジェクトメニューを通じて、またはソリューションエクスプローラでプロジェクトを右クリックして行います。

パッケージマネージャー
- 次に、参照タブから > IronXL.Excelを検索 > インストール

IronXL NuGet インストール
- これで完了です。
2.2. DLLの手動インストール
IronXL C#ライブラリをダウンロードしてインストールする別の方法として、次の手順を使用してIronXL NuGetパッケージを開発者コマンドプロンプト経由でインストールします。
- Developer Command Promptを開きます - 通常、Visual Studioフォルダにあります。
次のコマンドを入力します:
Install-Package IronXL.Excel
- Enterキーを押します。
- これでパッケージがダウンロードされインストールされます。
- Visual Studioプロジェクトをリロードして使用を開始します。
2.3. 必要なUsingディレクティブを追加する
- ソリューションエクスプローラーで、Program.csファイルを右クリックし、表示コードをクリックします。
- コードファイルの冒頭に以下のusingディレクティブを追加します。
using IronXL;using IronXL;これで完了です! IronXLはダウンロードされ、インストールされ、使用準備が整いました。 しかし、その前に、ClosedXMLをインストールする必要があります。
3. ClosedXMLのインストール
ClosedXMLパッケージをインストールするには、プロジェクトのNuGetまたはNuGetパッケージマネージャ/コンソールから直接ダウンロードできます。
For directly installing ClosedXML, click on this link.
3.1. NuGetパッケージマネージャ/コンソールの使用
プロジェクトソリューションエクスプローラーからNuGetパッケージマネージャを開き、ClosedXMLを検索してインストールをクリックします。

ClosedXML NuGet インストール
または:
- Developer Command Promptを開きます - 通常、Visual Studioフォルダにあります。
次のコマンドを入力します:
Install-Package ClosedXML
- Enterキーを押します。
- これでパッケージがダウンロードされインストールされます。
- Visual Studioプロジェクトをリロードして使用を開始します。
3.2. 必要なUsingディレクティブを追加する
- ソリューションエクスプローラーで、Program.csファイルを右クリックし、表示コードをクリックします。
- コードファイルの冒頭に以下のusingディレクティブを追加します。
using ClosedXML.Excel;using ClosedXML.Excel;4. 新しいExcelワークブックとシートの作成と保存
ワークブックとは、行と列を含む複数のワークシートを含むExcelファイルです。 両方のライブラリは、新しいExcelワークブックとシートを作成する機能を提供します。 コードをステップバイステップで見てみましょう。
4.1. IronXLを使用した新しいExcelワークブックとシート
IronXLを使用して新しいExcelワークブックを作成するのは非常に簡単です。 それはたった1行のコードです。 はい、本当に。 次のコードをProgram.csファイルの静的void main関数に追加します:
// Create a new Excel workbook using IronXL
WorkBook workbook = WorkBook.Create(ExcelFileFormat.XLSX);// Create a new Excel workbook using IronXL
WorkBook workbook = WorkBook.Create(ExcelFileFormat.XLSX);IronXLで、XLS(古いExcelファイルバージョン)とXLSX(現在と新しいファイルバージョン)の両方のファイル形式を作成することができます。
そして、デフォルトのワークシートを作成するのはさらに簡単です:
// Create a new worksheet within the workbook
var worksheet = workbook.CreateWorkSheet("IronXL Features");// Create a new worksheet within the workbook
var worksheet = workbook.CreateWorkSheet("IronXL Features");今やワークシート変数を使ってセルの値を設定し、Excelファイルができるほぼすべてのことを行うことができます。
// Add data and styles to the new worksheet
worksheet["A1"].Value = "Hello World";
worksheet["A2"].Style.BottomBorder.SetColor("#ff6600");
worksheet["A2"].Style.BottomBorder.Type = IronXL.Styles.BorderType.Double;// Add data and styles to the new worksheet
worksheet["A1"].Value = "Hello World";
worksheet["A2"].Style.BottomBorder.SetColor("#ff6600");
worksheet["A2"].Style.BottomBorder.Type = IronXL.Styles.BorderType.Double;Excelファイルを保存します:
// Save the spreadsheet
workbook.SaveAs("NewExcelFile.xlsx");// Save the spreadsheet
workbook.SaveAs("NewExcelFile.xlsx");出力ファイルは次のようになります:

NewExcelFile出力
4.2. ClosedXMLを使用した新しいExcelワークブックとシート
ClosedXMLを使用して簡単にExcelファイル(.xlsx、.xlsm)を作成することもできます。 以下のコードは、シンプルなExcelファイルを生成して保存するための典型的な例です。 ワークブックに新しいサンプルシートを追加し、Excelアプリケーションのセルに値を割り当てることができます。
// Create a new empty Excel file
var workbook = new XLWorkbook();
// Create a new worksheet and set cell A1 value to 'Hello world!'
var worksheet = workbook.Worksheets.Add("ClosedXML Features");
worksheet.Cell("A1").Value = "Hello world!";
// Save to XLSX file
workbook.SaveAs("Spreadsheet.xlsx");// Create a new empty Excel file
var workbook = new XLWorkbook();
// Create a new worksheet and set cell A1 value to 'Hello world!'
var worksheet = workbook.Worksheets.Add("ClosedXML Features");
worksheet.Cell("A1").Value = "Hello world!";
// Save to XLSX file
workbook.SaveAs("Spreadsheet.xlsx");出力ファイルは次のようになります:

スプレッドシートファイルの出力
5. Excelファイルの読み取り (Excelファイルのインポート)
両方のライブラリは、既存のExcelドキュメントを開いて読み取ることができます。 サンプルコードを見てみましょう。
5.1. IronXLを使用したExcelファイルの読み取り
IronXLのWorkBookクラスはExcelシートを表します。 C#を使用してExcelファイルを開くには、WorkBook.Loadを使用してファイルパス(.xlsx)を指定します。 以下の1行コードは、読み取りのためにファイルを開くために使用されます:
// Load WorkBook
var workbook = WorkBook.Load(@"Spreadsheets\\sample.xlsx");// Load WorkBook
var workbook = WorkBook.Load(@"Spreadsheets\\sample.xlsx");各WorkBookにはExcelドキュメント内に複数のワークシートを持たせることができます。 ワークブックが複数のワークシートを含む場合、名前でそれらを取り出します:
// Open Sheet for reading
var worksheet = workbook.GetWorkSheet("sheetnamegoeshere");// Open Sheet for reading
var worksheet = workbook.GetWorkSheet("sheetnamegoeshere");セル値を読み取るためのコード:
// Read from ranges of cells elegantly
foreach (var cell in worksheet["A2:A10"])
{
Console.WriteLine("Cell {0} has value '{1}'", cell.AddressString, cell.Text);
}// Read from ranges of cells elegantly
foreach (var cell in worksheet["A2:A10"])
{
Console.WriteLine("Cell {0} has value '{1}'", cell.AddressString, cell.Text);
}5.2. ClosedXMLを使用したExcelファイルの読み取り
ClosedXMLは、C#アプリケーションから以前に作成されたファイルを読み取ることを許可します。 次のコードを使用して、Excelファイルをインポートできます。
// Import Excel file from file's path
var workbook = new XLWorkbook("SimpleTemplate.xlsx");
// Read worksheet from workbook using sheet number
var worksheet1 = workbook.Worksheet(1);
// Read cell value from the first sheet
var data = worksheet1.Cell("A1").GetValue<string>();
// Display on screen
Console.WriteLine(data);// Import Excel file from file's path
var workbook = new XLWorkbook("SimpleTemplate.xlsx");
// Read worksheet from workbook using sheet number
var worksheet1 = workbook.Worksheet(1);
// Read cell value from the first sheet
var data = worksheet1.Cell("A1").GetValue<string>();
// Display on screen
Console.WriteLine(data);6. Excel数式を扱う
Excelの数式は、Excelを使用する上で最も重要な機能の1つです。 両方のライブラリには強力な数式計算エンジンがあります。セルに数式を容易に適用するための機能を提供します。
6.1. IronXLを使用したExcel数式の操作
ワークブックとワークシートをロードした後、次のコードサンプルを使用して、数式を変更するか、特定のセルに適用することができます。 コードは次のようになります:
// Set formulas
worksheet["A1"].Formula = "=Sum(B8:C12)";
worksheet["B8"].Formula = "=C9/C11";
worksheet["G30"].Formula = "=Max(C3:C7)";
// Force recalculating all formula values in all sheets
workbook.EvaluateAll();// Set formulas
worksheet["A1"].Formula = "=Sum(B8:C12)";
worksheet["B8"].Formula = "=C9/C11";
worksheet["G30"].Formula = "=Max(C3:C7)";
// Force recalculating all formula values in all sheets
workbook.EvaluateAll();また、数式とその値を取得することもできます:
// Get the formula's calculated value e.g. "52"
string formulaValue = worksheet["G30"].Value;
// Get the formula as a string e.g. "Max(C3:C7)"
string formulaString = worksheet["G30"].Formula;
// Save your changes with updated formulas and calculated values
workbook.Save();// Get the formula's calculated value e.g. "52"
string formulaValue = worksheet["G30"].Value;
// Get the formula as a string e.g. "Max(C3:C7)"
string formulaString = worksheet["G30"].Formula;
// Save your changes with updated formulas and calculated values
workbook.Save();6.2. ClosedXMLを使用したExcelの数式の操作
ClosedXMLはすべての数式をサポートしているわけではなく、数式がサポートされていない場合や、数式にエラーがある場合は厄介なエラーが発生する可能性があります。 本番環境に移行する前に数式をテストしてください。 それらを使用する方法を見てみましょう。
// Set formulas
worksheet.Cell("A1").Value = "Hello World!";
worksheet.Cell("A2").FormulaA1 = "=MID(A1, 7, 5)";
// You can use Evaluate function to directly calculate formula
var sum = worksheet.Evaluate("SUM(B1:B7)");
// Force recalculation
worksheet.RecalculateAllFormulas();
// Save Excel file
workbook.SaveAs("Formula Calculation.xlsx");// Set formulas
worksheet.Cell("A1").Value = "Hello World!";
worksheet.Cell("A2").FormulaA1 = "=MID(A1, 7, 5)";
// You can use Evaluate function to directly calculate formula
var sum = worksheet.Evaluate("SUM(B1:B7)");
// Force recalculation
worksheet.RecalculateAllFormulas();
// Save Excel file
workbook.SaveAs("Formula Calculation.xlsx");FormulaA1プロパティは、A1セルを参照しています。 別のセルを参照する場合は、そのFormulaプロパティに追加する必要があります。 例:FormulaC2。
7. ライセンス
IronXLは商業的にオープンなC# Excelライブラリです。 開発には無料で使用でき、商用デプロイメントのためにいつでもライセンスを取得できます。 ライセンスは、単一のプロジェクト使用、単一の開発者、代理店、世界的な企業、およびSaaSやOEMの再配布のために利用可能です。 すべてのライセンスには30日間の返金保証、1年間の製品サポートとアップデート、デブ/スタージング/プロダクションのための有効性、および永久ライセンス(1回の購入)が含まれています。 ライトパッケージは$799から始まります。

IronXLライセンスパッケージ
ClosedXMLの場合、このDLLファイルを使用するアプリケーションは、単一使用または商業使用のための別途のライセンスを必要としません。 ClosedXMLを使用するためのソリューションが機能するためには、公開されているNuGetパッケージ"ClosedXML"をインストールするだけです。 ClosedXMLはMITライセンスの下でライセンスされています。 MITライセンスは、著作権およびライセンス通知の保持のみを条件とする短くシンプルな許諾的ライセンスです。 ライセンスされた作品、修正、および大規模な作品は異なる条件の下で配布される可能性があり、ソースコードを伴わなくてもかまいません。

ClosedXMLライセンス
8. まとめと結論
概要
IronXLは、Excelファイル操作に必要なすべてを提供する完全なライブラリです。IronXLは、開発者が.NETアプリケーションやウェブサイトでExcel(および他のスプレッドシートファイル)を読み取り、生成し、編集することを可能にします。 C#でExcelや他のスプレッドシートファイルを操作するための迅速かつ自然なアプローチを提供します。
ClosedXMLは、Excelファイルを読み書きするための.NETライブラリであり、開発者がExcel 2007+ファイルをより簡単に作成できるようにします。 これは、XMLドキュメントの手間をかけずに(VBAに似た)オブジェクト指向の方法でファイルを操作する素晴らしい手段を提供します。 C#やVisual Basic(VB)などの任意の.NET言語で使用することができます。 OpenXMLの機能を提供しますが、まだ一部の機能は実装されていません。 例:マクロ、埋め込み、チャート。
結論
IronXLは、セルデータ形式、ソート、セルスタイルなど、他のExcel操作にも役立ちます。 System.Data.DataSetおよびSystem.Data.DataTableとしてExcelスプレッドシートを操作することもできます。 コンソール、ウェブサーバー、およびデスクトップベースのアプリケーションでもサポートされています。 すべてのOSプラットフォームでもサポートされています。
ClosedXMLは、OpenXML APIを使用してExcelアプリケーションを読み取り、操作し、書き込むための軽量なライブラリであり、迅速で実装が容易です。 ページ設定、ペインの固定、ハイパーリンク、テーブル、および条件付き書式設定など、主要なExcel操作すべてに役立ちます。 オーバーヘッドがなく、パフォーマンスの問題も少ないです。
比較すると、IronXLとClosedXMLの両方は、Excelスプレッドシートの処理において高速で正確です。 Excelレポートを作成する際にMicrosoft Officeのインストールやライセンスは必要ありません。 しかし、IronXLはClosedXMLに対して優位性があります。なぜなら、ClosedXMLはスレッドセーフではないからです。 IronXLは使いやすく、他の形式をXLSXに変換したり、XLSXからCSVやHTMLなどの他の形式に変換する機能を提供します。 ClosedXMLではこの変換は許可されていません。 この相互変換により、ユーザーは他のファイル形式を簡単に操作する柔軟性が得られます。
今、あなたは 1 人の開発者用のライトパッケージの価格で 5 つの Iron 製品を手に入れることができ、$unlimitedSuitePrice で無制限に、最大 60% を節約できます。
よくある質問
C#でInteropを使用せずにExcelファイルを読むにはどうすればよいですか?
C#でInteropを使用せずにExcelファイルを読むには、IronXLやClosedXMLのようなライブラリを使用できます。これらのライブラリはMicrosoft Excelのインストールを必要とせず、プログラムでExcelファイルを読み取り、操作する方法を提供します。
Excelファイル操作にIronXLを使用する利点は何ですか?
IronXLは使いやすいAPIを提供し、広範なスプレッドシート形式をサポートしており、ソート、スタイリング、数式処理などの操作を提供します。また、スレッドセーフで様々な形式へのエクスポートが可能であり、Excelファイル操作において多用途なツールとなります。
IronXLはExcelの数式を処理できますか?
はい、IronXLはExcelの数式を処理できます。数式をExcelファイル内で作成、評価、操作することができ、複雑なスプレッドシート操作に対する強力な機能を提供します。
IronXLがサポートするプラットフォームはどれですか?
IronXLは、.NET Framework、.NET Core、Xamarin、Azureなど、多くのプラットフォームをサポートし、様々な環境で働く開発者にとって柔軟な選択肢となります。
C#を使用してExcelファイルをHTMLに変換するにはどうすればよいですか?
C#を使用してExcelファイルをHTMLに変換するには、IronXLを使用できます。非常に簡単にウェブ上でスプレッドシートデータを共有および表示できるように、ExcelファイルをHTML形式にエクスポートするメソッドを提供します。
形式サポートに関するIronXLとClosedXMLの違いは何ですか?
IronXLは、XLS、XLSX、CSV、TSV、JSONを含む幅広い形式をサポートしており、これらの形式間の変換を可能にします。ClosedXMLは、OpenXML形式を使用して、Excel 2007+(.xlsx、.xlsm)ファイルの処理に重点を置いています。
C#プロジェクトでIronXLをインストールするにはどうすればよいですか?
Visual StudioのNuGetパッケージマネージャーを使用してInstall-Package IronXL.Excelコマンドを使用するか、プロジェクトにDLLを手動で追加することによって、C#プロジェクトにIronXLをインストールできます。
商用プロジェクトでIronXLを使用するためのライセンス要件はありますか?
はい、商用プロジェクトでの展開にはIronXLは商用ライセンスを必要とします。単一プロジェクト、開発者、エージェンシー、法人向けのさまざまなライセンスオプションを提供し、30日間の返金保証もあります。






