IronXLとGemBox.Spreadsheetの比較
Excelファイルを操作してレポートを生成し、データベースを構築する能力は、今日のソフトウェアアプリケーションにとって必要不可欠です。 これをMicrosoft Excelなしで行うことを可能にするライブラリーが多数あります。
この記事では、C#.NETを使用して、IronXLとGemBox.Spreadsheetという2つの最も人気のあるExcelスプレッドシートライブラリーを用いて、Microsoft Excelドキュメントをプログラムで扱う方法について説明します。
IronXLとGemBox.Spreadsheetはどちらも、.NETアプリケーションにおいてExcelドキュメントを作成、編集、読み取りするためのメソッドを提供しています。 では、どちらがプロジェクトに最適かをどのように決定しますか? この記事は、両方のライブラリーを比較し、プロジェクトに最適なオプションを決定するのに役立ちます。
IronXLライブラリー
IronXLは多様なスプレッドシート形式の読み取りと編集を容易にする.NET C#ライブラリーです。 Microsoft Excelのインストールは不要で、Interopも必要ありません。IronXLは.NET Core、.NET Framework、Xamarin、モバイル、Linux、macOS、Azureを完全にサポートします。
IronXLの機能セット
- データの読み込み、読み取り、編集 — XLS/XLSX/CSV/TSVから
- 様々な形式へのエクスポートと保存 — XLS/XLSX/CSV/TSV/JSONへ
System.Dataオブジェクト — Excel WorkBookスプレッドシートをSystem.Data.DataSetとSystem.Data.DataTableオブジェクトとして動作させます。- フォーミュラと連携 — Excelフォーミュラと連携します。 シートが編集されるたびに数式が再計算されます。
- 範囲と連携 — 使いやすいWorkSheet構文で範囲の作成と統合を直感的に行えます。
- フィルタリングと並べ替え — 範囲、列、行を並べ替えることができます。
- セルのスタイリング — ビジュアルスタイル、フォント、サイズ、背景パターン、境界線、配置、番号形式。
GemBox.Spreadsheet
GemBox.Spreadsheetは.NET C#アプリケーションでスプレッドシートファイルの作成、読み取り、書き込み、編集、変換、印刷を可能にするライブラリーです。 Microsoft Excelオートメーションより最大250倍速いです!
GemBox.Spreadsheet APIの特徴
- Excelファイル(XLSX, XLS, ODS)、テキストファイル(CSV, TXT)、HTMLファイルを読み取ります。
- スプレッドシートを作成し、XLSX, XLS, ODS, CSV, TXT, HTML, PDF, PDF/A, XPS, 画像形式に変換します。
- WPF, ASP.NET, ASP.NET Core, Windows.Formsアプリケーションでスプレッドシートを表示および編集します。
- 計算エンジンを使用してセルフォーミュラを適用します。
- シート、行、列、セル、フォーミュラ、画像、チャート、図形、テキストボックス、テーブル、セルスタイルと書式設定、およびピボットテーブルを作成および編集します。
- ヘッダー、フッター、ドキュメントプロパティを操作します。
- セルグループの編集、データのアウトライン化、データ検証、シート保護、印刷/表示オプションの編集。
- スプレッドシートデータを
System.Data.DataSetおよびSystem.Data.DataTableにインポートおよびエクスポートします。 - Excelスプレッドシートを印刷します。
この記事の残りの部分は次の通りです:
- コンソールアプリケーションの作成
- IronXL C#ライブラリのインストール
- GemBox.Spreadsheetのインストール
- 新規Excelワークブックの作成
- Excelファイルの読み取り
- Excelの数式を使った作業
- ファイルの相互変換
- ライセンス
- 結論
1. コンソールアプリケーションを作成
以下の手順はコンソールアプリケーションを作成するのに役立ちます:
- 最新のVisual Studio IDEをダウンロードしてインストールします。
- Visual Studioを起動し、"新しいプロジェクトを作成"をクリックします。
その後、表示されたプロジェクトテンプレートからコンソールアプリ (.NET Framework) C#を選択します。

コンソール アプリケーション
- 次へをクリック。
ここで使用したいフレームワークバージョンを指定します。 最新のものを推奨します。

プロジェクトを設定
- 作成をクリックしてプロセスを完了します。
これでプロジェクトが作成され、使用可能な状態になります。
2. IronXL C#ライブラリのインストール
IronXLライブラリーは以下の方法でダウンロードしてインストールできます:
- NuGetパッケージマネージャーを使用したVisual Studioによる。
- DLLを手動でダウンロードしてインストールする。
2.1.Visual StudioとNuGetパッケージマネージャー
Visual Studio 2022はあなたのプロジェクトにNuGetパッケージをインストールするのに便利なNuGetパッケージマネージャーを提供します。 プロジェクトメニューまたはソリューションエクスプローラーでプロジェクトを右クリックして複数の方法でアクセスできます。

パッケージマネージャー
- "IronXL.Excel"をブラウズタブで検索し、ライブラリーを追加するためのインストールボタンをクリックします。
- このプロセスが完了した後、IronXLは正常にインストールされます。
2.2.DLLを手動でダウンロードしてインストール
IronXLライブラリーをダウンロードしてインストールするもう一つの方法は、NuGetパッケージマネージャーコンソールを使用することです。
- Developer Command Promptコンソールを開きます。
次のコマンドを入力します:
Install-Package IronXL.Excel
- Enterキーを押します。 これでパッケージが自動的にプロジェクトにダウンロードおよびインストールされます。
2.4.IronXLライブラリーを含める
- Program.csファイルを開きます。
- コードファイルの上部に次のコード行を追加します:
using IronXL;using IronXL;3. GemBox.Spreadsheetのインストール
GemBox.Spreadsheetをインストールするには、NuGetパッケージマネージャーで次のコマンドを使用してください。
Install-Package GemBox.Spreadsheet

GemBox.Spreadsheet を検索
また、ダウンロードしてセットアップインストーラーを実行することもできます。
次に、前と同様にprogram.csファイルを開き、前のセクションで追加したusingステートメントの下に次のコード行を追加します:
using GemBox.Spreadsheet;
// If using Professional version, put your serial key below.
SpreadsheetInfo.SetLicense("FREE-LIMITED-KEY");using GemBox.Spreadsheet;
// If using Professional version, put your serial key below.
SpreadsheetInfo.SetLicense("FREE-LIMITED-KEY");4. 新規Excelワークブックの作成と保存
Excelワークブックには複数のワークシートを含めることができます。 両方のライブラリーは、1つ以上のワークシートを含むExcelワークブックを作成する機能を提供します。 それぞれのライブラリーがこれをどのように実現するかを見ていきましょう。
4.1. IronXLを使用した新しいExcelワークブックとシート
IronXLを使用して新しいExcelワークブックを作成するのは非常に簡単です!
Program.csファイルに次のコードを追加してください:
var workbook = WorkBook.Create(ExcelFileFormat.XLSX);
var worksheet = workbook.CreateWorkSheet("IronXL Features");
//Save spreadsheet
workbook.SaveAs("NewExcelFile.xlsx");var workbook = WorkBook.Create(ExcelFileFormat.XLSX);
var worksheet = workbook.CreateWorkSheet("IronXL Features");
//Save spreadsheet
workbook.SaveAs("NewExcelFile.xlsx");4.2.GemBox.Spreadsheetを使用した新しいExcelワークブックとシート
次のコードスニペットで示されているように、GemBoxでもExcelワークブックを作成するのは非常に簡単です:
// Create a new empty Excel file.
var workbook = new ExcelFile();
// Create a new worksheet and set cell A1 value to 'Hello world!'.
workbook.Worksheets.Add("Sheet 1").Cells["A1"].Value = "Hello world!";
// Save to XLSX file.
workbook.Save("Spreadsheet.xlsx");// Create a new empty Excel file.
var workbook = new ExcelFile();
// Create a new worksheet and set cell A1 value to 'Hello world!'.
workbook.Worksheets.Add("Sheet 1").Cells["A1"].Value = "Hello world!";
// Save to XLSX file.
workbook.Save("Spreadsheet.xlsx");5. Excelファイルの読み取り
IronXLとGemBoxの両方が既存のExcelファイルからデータを読み取ることができます。 それぞれのライブラリーのサンプルコードを1つずつ見ていきましょう。
5.1.IronXLを使用したExcelファイルの読み取り
IronXLのWorkBookクラスはExcelシートを表します。 C#でExcelファイルを開いて読み取るには、WorkBook.Loadを使用し、Excelファイル(.xlsx)の正確なパスを指定します。
次のコードはスプレッドシートを読み込みます:
// Load WorkBook
var workbook = WorkBook.Load(@"Spreadsheets\\sample.xlsx");
// Open Sheet for reading
var worksheet = workbook.GetWorkSheet("sheetnamegoeshere");// Load WorkBook
var workbook = WorkBook.Load(@"Spreadsheets\\sample.xlsx");
// 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.GemBox.Spreadsheetを使用したExcelファイルの読み取り
GemBox.Spreadsheetを使用すると、C#アプリケーションから素早くExcelファイルを読み取ることができます。 次のコードは、ファイルを開いて読み取る方法を示しています。
var workbook = ExcelFile.Load("SimpleTemplate.xlsx");
var worksheet = workbook.Worksheets["sheetnamegoeshere"];
foreach (var cell in worksheet.Cells.GetSubrange("A2", "A20"))
{
Console.WriteLine("Cell {0} has value '{1}'", cell.Name, cell.Value);
}var workbook = ExcelFile.Load("SimpleTemplate.xlsx");
var worksheet = workbook.Worksheets["sheetnamegoeshere"];
foreach (var cell in worksheet.Cells.GetSubrange("A2", "A20"))
{
Console.WriteLine("Cell {0} has value '{1}'", cell.Name, cell.Value);
}6. Excel数式を扱う
フォーミュラの実装は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 recalculate 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 recalculate all formula values in all sheets.
workbook.EvaluateAll();また、数式とその値を取得することもできます:
// Get the formula's calculated value. e.g., "52"
var formulaValue = worksheet["G30"].Value;
//Get the formula as a string. e.g., "Max(C3:C7)"
var formulaString = worksheet["G30"].Formula;
//Save your changes with updated formulas and calculated values.
workbook.Save();// Get the formula's calculated value. e.g., "52"
var formulaValue = worksheet["G30"].Value;
//Get the formula as a string. e.g., "Max(C3:C7)"
var formulaString = worksheet["G30"].Formula;
//Save your changes with updated formulas and calculated values.
workbook.Save();6.2.GemBox.Spreadsheetを使用したExcelフォーミュラの操作
GemBox.Spreadsheetは、数学、統計、論理、ルックアップ、金融など、数多くのExcelフォーミュラ関数の施設を提供しています。 それらの使い方を見ていきましょう。
// Set Formulas
worksheet.Cells["A2"].Value = "=1 + 1";
worksheet.Cells["A3"].Value = "=3 * (2 - 8)";
worksheet.Cells["A10"].Value = "=SIGN(B9)";
worksheet.Cells["A11"].Value = "=SUM(B2:B10)";
workbook.Save("Formula Calculation.xlsx");// Set Formulas
worksheet.Cells["A2"].Value = "=1 + 1";
worksheet.Cells["A3"].Value = "=3 * (2 - 8)";
worksheet.Cells["A10"].Value = "=SIGN(B9)";
worksheet.Cells["A11"].Value = "=SUM(B2:B10)";
workbook.Save("Formula Calculation.xlsx");7. ファイルの相互変換 — (Excel, XLS, XLSX, XLSb, XLSM, XPS データインターチェンジ)
IronXLとGemBox.Spreadsheetはどちらも、異なるスプレッドシートファイルタイプ間の変換機能を提供します。
7.1.IronXLを使用したスプレッドシートタイプの変換
CSVからExcel形式へ
var workbook = WorkBook.LoadCSV("test.csv", fileFormat: ExcelFileFormat.XLSX, ListDelimiter: ",");
var ws = workbook.DefaultWorkSheet;
workbook.SaveAs("CsvToExcelConversion.xlsx");var workbook = WorkBook.LoadCSV("test.csv", fileFormat: ExcelFileFormat.XLSX, ListDelimiter: ",");
var ws = workbook.DefaultWorkSheet;
workbook.SaveAs("CsvToExcelConversion.xlsx");XLSXファイルをXLSMに
var workbook = WorkBook.Load("test.xlsx");
// This is how you can export the workbook to .xlsm format
workbook.SaveAs("test.xlsm");var workbook = WorkBook.Load("test.xlsx");
// This is how you can export the workbook to .xlsm format
workbook.SaveAs("test.xlsm");オプション付きのExcel to HTML
var workbook = WorkBook.Load("test.xlsx");
var options = new HtmlExportOptions()
{
// This is how we can make row/column numbers visible in the HTML document
OutputRowNumbers = true,
OutputColumnHeaders = true,
OutputHiddenColumns = true,
// This is how we can make hidden rows/columns visible in the HTML document
OutputHiddenRows = true,
OutputLeadingSpacesAsNonBreaking = true
};
// This is how we can export the workbook to the HTML file
workbook.ExportToHtml("workbook.html", options);var workbook = WorkBook.Load("test.xlsx");
var options = new HtmlExportOptions()
{
// This is how we can make row/column numbers visible in the HTML document
OutputRowNumbers = true,
OutputColumnHeaders = true,
OutputHiddenColumns = true,
// This is how we can make hidden rows/columns visible in the HTML document
OutputHiddenRows = true,
OutputLeadingSpacesAsNonBreaking = true
};
// This is how we can export the workbook to the HTML file
workbook.ExportToHtml("workbook.html", options);7.2.GemBox.Spreadsheetを使用したスプレッドシートタイプの変換
XLSXファイルからPDFへ
var workbook = ExcelFile.Load("ComplexTemplate.xlsx");
workbook.Save("Convert.pdf", new PdfSaveOptions() { SelectionType = SelectionType.EntireFile });var workbook = ExcelFile.Load("ComplexTemplate.xlsx");
workbook.Save("Convert.pdf", new PdfSaveOptions() { SelectionType = SelectionType.EntireFile });XLSXファイルから画像へ
// Load an Excel file into the ExcelFile object.
var workbook = ExcelFile.Load("CombinedTemplate.xlsx");
// Create image save options.
var imageOptions = new ImageSaveOptions(ImageSaveFormat.Png)
{
PageNumber = 0, // Select the first Excel page.
Width = 1240, // Set the image width.
CropToContent = true // Export only the sheet's content.
};
// Save the ExcelFile object to a PNG file.
workbook.Save("Output.png", imageOptions);// Load an Excel file into the ExcelFile object.
var workbook = ExcelFile.Load("CombinedTemplate.xlsx");
// Create image save options.
var imageOptions = new ImageSaveOptions(ImageSaveFormat.Png)
{
PageNumber = 0, // Select the first Excel page.
Width = 1240, // Set the image width.
CropToContent = true // Export only the sheet's content.
};
// Save the ExcelFile object to a PNG file.
workbook.Save("Output.png", imageOptions);CSVファイルからExcelへ
ExcelFile.Load("CSVTemplate.csv").Save("Convert.xlsx");ExcelFile.Load("CSVTemplate.csv").Save("Convert.xlsx");同様に、GemBox.Spreadsheetを使用して、C#アプリケーションからXLS, XLSX, ODS, CSV,およびHTMLファイル間の変換が可能です。
8. ライセンス
IronXLは商用C# Excelライブラリーです。 開発目的で無料ですが、商用デプロイメントにはライセンスが必要です。 全てのIronXL ライセンスは、単一プロジェクト、個々の開発者、代理店、グローバル企業で使用可能であり、SaaSおよびOEM再頒布の有無を問わず使用できます。 各ライセンスには30日間の返金保証が含まれ、一年の製品サポートとアップデート、開発/ステージング/本番の有効性、そして永続ライセンス(1回限りの購入)が含まれます。 ライトライセンスは$799から始まります。
GemBox.Spreadsheetも商用ライブラリーです。 個人および商用アプリケーションの両方で無料で使用できます。 ただし、プロフェッショナル用途にはライセンスが必要になる場合があります。 そのライセンスは、個々の開発者、小規模なチーム、大企業向けの使用を含みます。 ロイヤリティフリーのデプロイメント(サーバーやOEMライセンスは不要)、12か月の無料の技術サポート、無料でのバグ修正と新バージョンのリリースを提供します。 シングル開発者パッケージは$890から始まります。
9. どの.NETスプレッドシートライブラリーを使用するべきか?
この記事では、両方のライブラリがMicrosoft Excelスプレッドシートをロード、読み込み、編集、変換するためにどれだけ簡単にユーザーに提供しているかを示しました。 IronXLとGemBox.Spreadsheetは共に、これらのアクティビティを達成するためのユニークで強力なアプローチを提供しており、非常に一般的な読み書きオートメーションタスクを行うためには非常に魅力的な選択肢です。
では、どの.NET Excelライブラリーを開発者はプロジェクトで使用すべきでしょうか?
読者は次のポイントを考慮することで、自分の次の大きなプロジェクトでIronXLまたはGemBox.Spreadsheetを使用するか選択できるようになります:
- アクセシビリティ。 IronXLは、使いやすさ、正確さ、速度を優先します。 このライブラリーは、一般的なExcelプログラミングタスク(読み込み、読み取り、書き込み、編集、範囲選択など)を迅速かつ最小限のコード行で達成できるように設計されています。 ウェブサイトには大量のチュートリアル、ハウツーガイド、コード例が書かれており、ユーザーが始めるのを手助けし、大きな目標をできるだけ迅速かつ簡単に達成できるようにしています。 さらに、IronXLには、問題があれば即座にユーザーを助けるためのエンジニアチームがスタンバイしています。
開発者は、サポート、ユーザーフレンドリー性、および実装のスピードが最も重要である場合にIronXLを使用することを考慮するかもしれません。
注:GemBox.Spreadsheetのウェブサイトにも、開発者がその強力な機能セットを最大限に活用するために役立つ詳細な例のコレクションがあります。
- 多様性。 GemBox.Spreadsheetの機能セットは、Excel自動化タスクを達成するためにこのチュートリアルで議論した基本的なものをはるかに超えて開発者が達成することを可能にします。 ユーザーはExcelワークシート上に形状を描画し、カスタムフォントでワークシートを編集し、VBAマクロ、フォームコントロール、およびチャートコンポーネントで新しいワークシートを作成し、暗号化やデジタル署名でPDFをExcel文書として保存するなど、他にも多くのことができます。 GemBox.Spreadsheetは200以上の異なるフォーミュラをサポートしています。 さらに、このライブラリーはセル範囲を参照するための非常に高度なメカニズムを持っています。
GemBox.Spreadsheetは、スプレッドシート管理タスクに柔軟性とパワーを求める開発者にとって魅力的な選択となります。
相互運用性。 GemBox.Spreadsheetは、Excel、LibreOffice、Open Officeスプレッドシートと連携でき、これらの製品の特有の特長の多くをサポートまたは保存することができます。 そのため、これらのオフィス製品間でスプレッドシートが機能する必要がある場合、開発者はGemBox.Spreadsheetを魅力的な選択肢と考えるかもしれません。
- 変換可能性。 IronXLはデータを多くの一般的なオープン形式(XML、HTML、JSON、CSV、TSV)にエクスポートでき、また任意のExcel文書タイプに変換できます。 IronXLはさらに、スプレッドシートデータをバイナリ、バイト、およびストリームデータに変換することができ、
System.Dataデータ構造にも変換できます。
GemBox.Spreadsheetもまた、スプレッドシートデータをSystem.Data.DataSetとSystem.Data.DataTableデータタイプに変換できます。さらに、このライブラリーはHTMLとしてのインポートおよびエクスポートが可能で、データを画像やPDF/A準拠の文書に変換することもできます。
この場合、どちらのライブラリーを選択するかは、プロジェクトで必要なデータ/ファイルタイプに依存します。
- 手頃さ。 IronXLとGemBox.Spreadsheetはどちらも商業使用するためにプレミアムライセンスが必要です。
価格に関する限り、IronXLとGemBox.Spreadsheetの決定要因は、最終的には予算、チームの規模、長期の開発に関する考慮事項に帰着します。 しかし、IronXLの開始$799ライセンス価格は、価格に敏感な開発者やチームにとって非常に魅力的である可能性があります。
IronXLの無料トライアルをお試しください。IronXLの効率性を確認できます。 完全なIron Suiteを購入して、わずか2つのIronXLライセンスの価格で4つの追加ライブラリーを入手しましょう。
よくある質問
.NETアプリケーションでExcelドキュメントを作成するにはどうすれば良いですか?
.NETアプリケーションではIronXLを使用してExcelドキュメントを作成できます。IronXLを使用すると、Microsoft Excelをインストールすることなく、プログラムでExcelファイルを生成し、スタイルをカスタマイズし、データを管理することができます。
.NET Excelライブラリで探すべき機能は何ですか?
.NETのExcelライブラリを選ぶ際には、数式処理、データ操作、スタイルのカスタマイズ、フォーマット変換、複数のスプレッドシート形式に対応しているかどうかを検討してください。IronXLは、使いやすさと速度を重視し、これらすべての機能を提供します。
性能面でIronXLとGemBox.Spreadsheetの比較はどうですか?
IronXLは使いやすさとスピードで知られており、単純なExcel自動化タスクに最適です。GemBox.Spreadsheetは豊富な機能と柔軟性を提供し、より複雑なExcelタスクに適しており、高い互換性を備えています。
.NETでExcelファイルを異なる形式に変換できますか?
はい、IronXLを使用すると、ExcelファイルをXML、HTML、JSON、CSVなどのさまざまな形式に変換できます。GemBox.SpreadsheetはPDF、画像などへの変換を許可し、幅広い形式オプションを提供します。
.NETアプリケーションでExcelの数式を処理するにはどうすれば良いですか?
IronXLはExcelの数式の処理をサポートしており、数式の設定、編集、取得を可能にします。シートが編集されるたびに数式を自動的に再計算し、データの正確性を確保します。
.NETプロジェクトでExcelライブラリを使用する際のライセンスオプションは何ですか?
IronXLは商業ライセンスを提供し、開発目的では無料で使用でき、個別プロジェクト、開発者、代理店、企業向けのオプションがあります。GemBox.Spreadsheetは非商業目的での無料使用と商業利用向けのプロフェッショナルライセンスを提供します。
.NETプロジェクトにExcelライブラリをインストールするにはどうすれば良いですか?
Visual StudioのNuGetパッケージマネージャーを使用するか、DLLを手動でダウンロードしてプロジェクトに追加することで、IronXLを.NETプロジェクトにインストールします。このプロセスにより、アプリケーションにIronXLの機能を統合できます。
プロジェクトのニーズに応じてどの.NETのExcelライブラリを選ぶべきですか?
IronXLとGemBox.Spreadsheetの選択は、特定のプロジェクトのニーズに依存します。IronXLは簡単さとサポートを重視する人向けであり、GemBox.Spreadsheetは高度なExcel自動化機能を必要とするユーザーに最適です。






