他のコンポーネントと比較

IronXLとClosedXMLの比較

更新済み 10月 24, 2022
共有:

今日のソフトウェアアプリケーションには、データベースを作成し、Excelファイルを使用してレポートを生成する機能が求められています。 今日では、ユーザーがMicrosoft Excelを使わずにこれを行うことができる多くのライブラリが利用可能です。

この記事では、C# .NET技術を使用してMicrosoft Excelドキュメントをプログラム的に操作する方法を、最も人気のある2つのライブラリ、IronXLとClosedXMLライブラリを使用して、Excelレポートの読み取り、操作、および書き込み方法を比較しながら説明します。

IronXLとClosedXMLの両方は、.NETフレームワークでExcelドキュメントを作成、編集、および読み取るための方法を提供します。 次の質問は、どのC# Excelライブラリがあなたのプロジェクトに最適かを決定することです。 この記事は、アプリケーションのための最適なオプションを決定するのに役立ちます。

まずは、両方のライブラリが提供する内容を見てみましょう。その後、比較に移ります。



IronXLライブラリ

IronXLは、C#を使用してMicrosoft Excel文書の読み取りおよび編集を簡単にする.NETライブラリです。 IronXL.Excel は、広範なスプレッドシートフォーマットを読み取るためのスタンドアロンの.NETソフトウェアライブラリです。 それにはMicrosoft Excelがインストールされている必要もなければ、Interopに依存することもありません。

IronXLは、.NETでExcelスプレッドシートファイルを読み取り、編集し、作成することを可能にする直感的なC# APIで、非常に高速なパフォーマンスを提供します。 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
  • システム.データ オブジェクト---Excelスプレッドシートとして作業する システム.データ.DataSet そして システム.データ.DataTable オブジェクト。
  • 数式 --- Excelの数式に対応します。 数式はシートが編集されるたびに再計算されます。
  • 範囲 --- 使いやすいWorkSheet [「A1:B10」] 構文。 範囲を直感的に結合し、作成します。
  • 並べ替え --- 範囲、列、行の並べ替え。

  • スタイリング --- セルのビジュアルスタイル、フォント、サイズ、背景パターン、ボーダー、配置、数値フォーマット。

    IronXLのさらに多くの機能については、こちらを使用して探索できます リンク.

クローズドXML

ClosedXMLは、Excel 2007以上の読み取り、操作、および書き込み用の.NETライブラリです。 (.xlsx、.xlsm) ファイル これは、基盤となるOpenXMLライブラリを扱うための直感的でユーザーフレンドリーなインターフェースを提供することを目的としています。 .xlsxは、Microsoft Excelで使用されるOpenXML基本APIスプレッドシートファイル形式のファイル拡張子です。 .xlsmファイルはマクロをサポートしています。 .xltmファイルはマクロ対応のテンプレートファイルです。 .xls形式は独自のバイナリ形式であり、一方で.xlsxはOffice OpenXML形式に基づいています。

ClosedXMLはMicrosoft Excelでのレポート生成用の.NETライブラリであり、コードを実行しているマシンにExcelがインストールされている必要はありません。

ClosedXMLの機能

ClosedXMLは、Excelのコンテンツの作成と抽出を処理するための幅広いAPI機能を備えたユーザーフレンドリーなインターフェースを提供します。 これらのAPI呼び出しとプルリクエストを使用して、Excelシートやワークブックのあらゆる細部を変更することができます。

以下にすべての機能を一覧にしています:

  1. 数式

  2. バリデーション

  3. ハイパーリンク

  4. 保護 (シートおよびセルレベル)**

  5. 条件付き書式

  6. ウィンドウ枠の固定

  7. テーブル

  8. 範囲

  9. スタイリング

  10. ページ設定 (印刷)**

  11. 自動フィルター

  12. コメント

    この記事の続きは次の通りです:

  13. コンソールアプリケーションを作成する

  14. IronXL C# ライブラリのインストール

  15. ClosedXMLのインストール

  16. 新しいExcelブックとシートを作成して保存

  17. Excelファイルを読み込む

  18. Excel 公式の操作

  19. ライセンス

  20. 概要と結論

コンソールアプリケーションを作成する

次の手順を使用してコンソールアプリケーションを作成します:

  • Visual Studio 2022 IDEを起動します。
  • 新しいプロジェクトを作成」をクリックしてください。
  • 新しいプロジェクトを作成」ページで、言語ドロップダウンリストから C# を選択し、プラットフォーム リストから Windows を選択し、「プロジェクトタイプ」リストから コンソール を選択します。
  • コンソールアプリを選択 (.NETフレームワーク)** 表示されているプロジェクトテンプレートから。
    プロジェクトを作成

    プロジェクトを作成

  • 次へをクリックします。
  • プロジェクトに「DemoApp」という名前を付け、「次へ」をクリックします。

    DemoAppプロジェクト

    DemoAppプロジェクト

  • 追加情報画面で、使用したいフレームワークのバージョンを指定してください。 この例では .NET Framework 6.0 を使用します。

    .NET フレームワーク 6.0

    .NET フレームワーク 6.0

  • 「作成」をクリックして、プロセスを完了します。

    プロジェクトが作成され、ライブラリのテストを実行する準備がほぼ整いました。 しかし、私たちはまだそれらをインストールし、プロジェクトに統合する必要があります。 まず、IronXLをインストールしましょう。

2. IronXL C#ライブラリのインストール

以下をダウンロードしてインストールできます IronXLライブラリ 次のメソッドを使用して:

  1. Visual Studio で NuGet パッケージを使用する。

  2. DLLの手動インストール。

    それぞれについて詳しく見ていきましょう。

Visual StudioでNuGetパッケージを使用する

Visual Studio は、プロジェクトに NuGet パッケージをインストールするための NuGet パッケージ マネージャーを提供します。 それはプロジェクトメニューからアクセスするか、ソリューションエクスプローラーでプロジェクトを右クリックしてアクセスできます。

パッケージマネージャー

パッケージマネージャー

  • 次に、ブラウズタブから「IronXL.Excel」を検索し、インストールします。

    IronXL NuGet インストール

    IronXL NuGet インストール

  • 完了しました。

2.2. DLLの手動インストール

IronXL C#ライブラリをダウンロードしてインストールするもう一つの方法は、開発者コマンドプロンプトを使用してIronXL NuGetパッケージをインストールするために、以下の手順を利用することです。

  • 開発者コマンドプロンプトを開きます。通常はVisual Studioフォルダ内にあります。

    以下のコマンドを入力してください:

Install-Package IronXL.Excel
  • Enterを押してください。
  • これにより、パッケージがダウンロードおよびインストールされます。

  • Visual Studioプロジェクトを再読み込みして、使用を開始してください。

2.4. 必要なusingディレクティブを追加

  1. ソリューション エクスプローラーで、Program.cs ファイルを右クリックし、「コードの表示」をクリックします。

  2. コードファイルの最上部に次のusingディレクティブを追加します:
using IronXL;
using IronXL;
Imports IronXL
VB   C#

すべて完了しました! IronXLはダウンロードされ、インストールされ、使用する準備が整いました。 しかし、その前にClosedXMLをインストールする必要があります。

3. ClosedXMLのインストール

パッケージClosedXMLをインストールするには、NuGetから直接ダウンロードするか、プロジェクト内のNuGetパッケージマネージャー/コンソールからダウンロードすることができます。

ClosedXMLを直接インストールするには、こちらをクリックしてください。 リンク.

3.1. NuGetパッケージ マネージャー/コンソールの使用

プロジェクトソリューションエクスプローラーからNuGetパッケージマネージャーを開き、ClosedXMLを検索してインストールをクリックします。

ClosedXML NuGet インストール

ClosedXML NuGet インストール

または:

  • 開発者コマンドプロンプトを開きます。通常はVisual Studioフォルダ内にあります。

    以下のコマンドを入力してください:

PM> Install-Package ClosedXML
  • Enterを押してください。
  • これにより、パッケージがダウンロードおよびインストールされます。

  • Visual Studioプロジェクトを再読み込みして、使用を開始してください。

3.2. 必要なusingディレクティブを追加

  1. ソリューション エクスプローラーで、Program.cs ファイルを右クリックし、「コードの表示」をクリックします。

  2. コードファイルの最上部に次のusingディレクティブを追加します:
using ClosedXML.Excel;
using ClosedXML.Excel;
Imports ClosedXML.Excel
VB   C#

新しいExcelワークブックとシートを作成して保存する

ワークブックは、複数のワークシートを含む行と列を持つExcelファイルです。 両方のライブラリは、新しいExcelワークブックおよびシートを作成する機能を提供します。 コードを一歩ずつ見てみましょう。

4.1. IronXLを使用して新しいExcelワークブックとシートを作成

IronXLを使用して新しいExcelワークブックを作成するのは非常に簡単です。 コード1行で実行できます。 本当にそうです。 Program.csファイルのstatic void main関数に次のコードを追加してください:

WorkBook workbook = WorkBook.Create(ExcelFileFormat.XLSX);
WorkBook workbook = WorkBook.Create(ExcelFileFormat.XLSX);
Dim workbook As WorkBook = WorkBook.Create(ExcelFileFormat.XLSX)
VB   C#

どちらのXLS (古いExcelファイルバージョン) およびXLSX (現在のバージョンおよび最新バージョン) IronXLでファイル形式を作成できます。

そして、デフォルトのワークシートを作成することはさらに簡単です:

var worksheet = workbook.CreateWorkSheet("IronXL Features");
var worksheet = workbook.CreateWorkSheet("IronXL Features");
Dim worksheet = workbook.CreateWorkSheet("IronXL Features")
VB   C#

ワークシート変数を使用してセルの値を設定し、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;
'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
VB   C#

Excelファイルを保存:

//Save spreadsheet
workbook.SaveAs("NewExcelFile.xlsx");
//Save spreadsheet
workbook.SaveAs("NewExcelFile.xlsx");
'Save spreadsheet
workbook.SaveAs("NewExcelFile.xlsx")
VB   C#

出力ファイルは次のようになります:

NewExcelFile(新しいExcelファイル) Output

NewExcelFile(新しいExcelファイル) 出力

4.2. ClosedXMLを使用した新しいExcelワークブックとシート

エクセルファイルも作成できます。(.xlsx、.xlsm) 容易にClosedXMLを使用して。 以下のコードは、単純な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");
' Create a new empty Excel file.
Dim workbook = New XLWorkbook()

' Create a new worksheet and set cell A1 value to 'Hello world!'.
Dim worksheet = workbook.Worksheets.Add("ClosedXML Features")
worksheet.Cell("A1").Value = "Hello world!"

' Save to XLSX file.
workbook.SaveAs("Spreadsheet.xlsx")
VB   C#

出力ファイルは次のようになります:

スプレッドシートファイル出力

スプレッドシートファイル出力

5. Excelファイルを読み込む (Excelファイルをインポートする)

両方のライブラリは、既存のExcelドキュメントを開いて読み取ることができます。 サンプルコードを見てみましょう。

5.1. IronXLを使用してExcelファイルを読み取る

IronXL WorkBookクラスはExcelシートを表します。 ExcelファイルをC#で開くには、WorkBook.Loadを使用し、ファイルのパスを指定します。 (.xlsx). 次の一行のコードは、ファイルを読み取るために使用されます:

//Load WorkBook
var workbook = WorkBook.Load(@"Spreadsheets\\sample.xlsx");
//Load WorkBook
var workbook = WorkBook.Load(@"Spreadsheets\\sample.xlsx");
'Load WorkBook
Dim workbook = WorkBook.Load("Spreadsheets\\sample.xlsx")
VB   C#

各ワークブックにはExcelドキュメント内に複数のワークシートを含めることができます。 ワークブックに複数のワークシートが含まれている場合、以下のようにして名前で取得します:

//Open Sheet for reading
var worksheet = workbook.GetWorkSheet("sheetnamegoeshere");
//Open Sheet for reading
var worksheet = workbook.GetWorkSheet("sheetnamegoeshere");
'Open Sheet for reading
Dim worksheet = workbook.GetWorkSheet("sheetnamegoeshere")
VB   C#

セル値を読み取るコード:

// 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);
}
' Read from Ranges of cells elegantly.
For Each cell In worksheet ("A2:A10")
	Console.WriteLine("Cell {0} has value '{1}'", cell.AddressString, cell.Text)
Next cell
VB   C#

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 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 first sheet
var data = worksheet1.Cell("A1").GetValue<string>();

// Display on screen
Console.WriteLine(data);
' Import Excel File from file's path.
Dim workbook = New XLWorkbook("SimpleTemplate.xlsx")

' Read worksheet from workbook using sheet number.
Dim worksheet1 = workbook.Worksheet(1)

' Read cell value from first sheet
Dim data = worksheet1.Cell("A1").GetValue(Of String)()

' Display on screen
Console.WriteLine(data)
VB   C#

6. Excel 公式の操作

エクセルの数式は、エクセルを使用する上で最も重要な機能の一つです。 両方のライブラリには強力な数式計算エンジンが備わっています。これらは、数式を操作し、簡単にセルに適用する機能を提供します。

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();
' 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()
VB   C#

数式とその値を取得することもできます:

// 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();
' Get the formula's calculated value.  e.g. "52"
Dim formulaValue As String = worksheet ("G30").Value

'Get the formula as a string. e.g. "Max(C3:C7)"
Dim formulaString As String = worksheet ("G30").Formula

'Save your changes with updated formulas and calculated values.
workbook.Save()
VB   C#

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");
' 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,
Dim sum = worksheet.Evaluate("SUM(B1:B7)")

' Force recalculation
worksheet.RecalculateAllFormulas()

' Save Excel file
workbook.SaveAs("Formula Calculation.xlsx")
VB   C#

プロパティFormulaA1は、A1セルを参照しています。 他のセルを参照する場合は、Formulaプロパティに追加する必要があります。 例:FormulaC2。

7. ライセンス

IronXLは、商用のオープンソースC# Excelライブラリです。 開発には無料で使用でき、商業展開のために常にライセンスすることができます。ライセンスが利用可能です単一プロジェクトの使用、単一の開発者、エージェンシー、グローバル企業、ならびにSaaSおよびOEM再配布向けです。 すべてのライセンスには、30日間の返金保証、1年間の製品サポートおよび更新、開発/ステージング/本番環境での有効性、そして永久ライセンスが含まれています。 (一回限りの購入). Liteパッケージは $599から始まります。

IronXLライセンスパッケージ

IronXLライセンスパッケージ

ClosedXMLを使用する場合、このDLLファイルを利用するアプリケーションには、単一使用または商業使用のための別個のライセンスは必要ありません。 ClosedXML と共に動作するソリューションのためには、公開されている NuGet パッケージ "ClosedXML" をインストールするだけです。 ClosedXMLはMITライセンスの下でライセンスされています。 MITライセンスは、著作権およびライセンス通知の保存を義務付ける条件のみを持つ、短くてシンプルな許容ライセンスです。 ライセンスされた作品、変更された作品、およびより大きな作品は、異なる条件でソースコードなしに配布される場合があります。

ClosedXMLライセンス

ClosedXMLライセンス

8. まとめと結論

サマリー

IronXL は、Excelファイルを操作するために必要なすべてを提供する完全なライブラリです。IronXLは、開発者がExcelファイルの読み取り、生成、編集を行うことを可能にします。 (およびその他のスプレッドシートファイル) .NETアプリケーションおよびウェブサイトで。 それは、C#でExcelやその他のスプレッドシートファイルを扱うための迅速かつ自然なアプローチを提供します。

ClosedXMLは、Excelファイルの読み書きを行うための.NETライブラリであり、開発者がExcel 2007以降のファイルを簡単に作成できるようにします。 ファイルを操作するための優れたオブジェクト指向の方法を提供します。 (VBAに類似) XMLドキュメントの煩わしさを処理することなく。 任意の.NET言語(C#やVisual Basicなど)で使用できます。 (VB). それはOpenXMLの機能を提供しますが、いくつかの機能はまだ実装されていません。 例:マクロ、埋め込み、およびチャート。

結論

IronXL また、セルデータの形式、並べ替え、セルのスタイリングなどの他のExcel操作にも役立ちます。 Excelスプレッドシートとも連携できます。 System.Data.DataSet そして System.Data.DataTable. それはコンソール、ウェブサーバー、およびデスクトップベースのアプリケーションをサポートしています。 これはすべてのOSプラットフォームでサポートされています。

ClosedXMLは、OpenXML APIを使用してExcelアプリケーションの読み取り、操作、書き込みを行うための軽量なライブラリであり、高速かつ簡単に実装できます。 ページ設定、ウィンドウ枠の固定、ハイパーリンク、テーブル、条件付き書式など、主要なエクセル操作すべてに役立ちます。 それにはオーバーヘッドやパフォーマンスの低下の問題はありません。

比較すると、IronXLとClosedXMLの両方は、Excelスプレッドシートにおいて高速かつ正確です。 Excelレポートを作成する際には、Microsoft Officeのインストールやライセンスは必要ありません。 しかし、IronXLにはClosedXMLに対する利点があります。ClosedXMLはスレッドセーフではありません。 IronXLは使いやすく、他の形式をXLSXに変換する機能を提供するだけでなく、XLSXをCSVやHTMLなどの他の形式に変換することもできます。 ClosedXMLはこの変換を許可していません。 この相互変換により、ユーザーは他のファイル形式を簡単に扱うことができます。

今すぐ5つのIron製品を手に入れることができます。 価格 ライトライセンスパッケージでは、1人の開発者向けに2つだけ입니다。($1498) 無制限版は$5,998で、最大60%の割引をお得にご利用いただけます。

< 以前
.NET向けIronXLとFastExcelの比較
次へ >
IronXLとGrapeCity Excel Viewerの比較

準備はできましたか? バージョン: 2024.9 新発売

無料のNuGetダウンロード 総ダウンロード数: 977,734 View Licenses >