ライブ環境でテストする
ウォーターマークなしで本番環境でテストしてください。
必要な場所でいつでも動作します。
今日のソフトウェアアプリケーションにとって、レポートを生成しデータベースを構築するためにExcelファイルを扱う能力は不可欠となっています。 Microsoft Excelを必要とせずにユーザーがこれを行うことを可能にする多くのライブラリが利用可能です。
この記事では、C#.NETを使用してプログラム的にMicrosoft Excelドキュメントを操作する方法について、最も人気のあるExcelスプレッドシートライブラリの2つ、IronXLとGemBox.Spreadsheetを使用して説明します。
IronXLとGemBox.Spreadsheetはどちらも、.NETアプリケーション内でExcelドキュメントを作成、編集、読み取るための方法を提供しています。 それでは、どの製品があなたのプロジェクトに最も適しているかをどうやって決めますか? この記事では、両方のライブラリを比較し、プロジェクトに最適なオプションを選択するのに役立ちます。
IronXLは、さまざまなスプレッドシートフォーマットの読み取りと編集を容易にする.NET C#ライブラリです。 Microsoft Excel がインストールされている必要はなく、Interop を必要としません。IronXL は .NET Core、.NET Framework、Xamarin、モバイル、Linux、macOS、Azure を完全にサポートしています。
System.Data
オブジェクト — これは、Excel WorkBook スプレッドシートを System.Data.DataSet
および System.Data.DataTable
オブジェクトとして扱います。ジェムボックススプレッドシート
GemBox.Spreadsheet は、.NET C# アプリケーションでスプレッドシートファイルを作成、読み取り、書き込み、編集、変換、および印刷するためのライブラリです。 それはMicrosoft Excelの自動化よりも最大で250倍速いです。!
System.Data.DataSet
およびSystem.Data.DataTable
からスプレッドシートのデータをインポートおよびエクスポートします。エクセルスプレッドシートの印刷
この記事の続きは次の通りです:
コンソールアプリケーションを作成する
IronXL C# ライブラリのインストール
GemBox.Spreadsheet のインストール
新しいExcelワークブックを作成する
Excelファイルの読込
Excel 公式の操作
ファイル間変換
ライセンス
以下のステップは、コンソールアプリケーションを作成するのに役立ちます:
ここでは、使用したいフレームワークバージョンを指定してください。 最新のバージョンをお勧めします。
「Create をクリックして、プロセスを完了します。」
プロジェクトが作成され、使用可能になります。
以下の方法でIronXLライブラリをダウンロードしてインストールできます:
Visual StudioとNuGetパッケージマネージャーを使用して。
Visual Studio 2022には、プロジェクトにNuGetパッケージをインストールするためのNuGetパッケージマネージャーが提供されています。 複数の方法でアクセスできます。「プロジェクト」メニューを介するか、ソリューション エクスプローラーでプロジェクトを右クリックします。
IronXLライブラリをダウンロードしてインストールする別の方法は、NuGetパッケージマネージャーコンソールを使用することです。
Developer Command Prompt コンソールを開きます。
以下のコマンドを入力してください:
Install-Package IronXL.Excel
Program.csファイルを開く。
using IronXL;
using IronXL;
Imports IronXL
以下のコマンドをNuGetパッケージマネージャーで使用して、GemBox.Spreadsheetをインストールしてください。
Install-Package 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");
Imports Gembox.Spreadsheet
' If using Professional version, put your serial key below.
SpreadsheetInfo.SetLicense("FREE-LIMITED-KEY")
Excelワークブックには、複数のワークシートを含めることができます。 両方のライブラリは、1つ以上のワークシートを含む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");
Dim workbook = WorkBook.Create(ExcelFileFormat.XLSX)
Dim worksheet = workbook.CreateWorkSheet("IronXL Features")
'Save spreadsheet
workbook.SaveAs("NewExcelFile.xlsx")
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");
' Create a new empty Excel file.
Dim 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")
IronXLとGemBoxの両方が既存のExcelファイルからデータを読み取ることができます。 それぞれのライブラリのサンプルコードを一つずつ見てみましょう。
IronXLのWorkBook
クラスは、Excelシートを表します。 ExcelファイルをC#で開いて読み取るためには、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");
'Load WorkBook
Dim workbook = WorkBook.Load("Spreadsheets\\sample.xlsx")
'Open Sheet for reading
Dim 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);
}
' 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
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);
}
Dim workbook = ExcelFile.Load("SimpleTemplate.xlsx")
Dim worksheet = workbook.Worksheets("sheetnamegoeshere")
For Each cell In worksheet.Cells.GetSubrange("A2", "A20")
Console.WriteLine("Cell {0} has value '{1}'", cell.Name, cell.Value)
Next cell
数式の実装は、最も重要な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();
' 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();
' Get the formula's calculated value. e.g. "52"
Dim formulaValue = worksheet("G30").Value
'
'Get the formula as a string. e.g. "Max(C3:C7)"
Dim formulaString = worksheet("G30").Formula
'Save your changes with updated formulas and calculated values.
workbook.Save()
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");
' 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")
IronXLとGemBox.Spreadsheetの両方は、異なるスプレッドシートファイル形式間の変換機能を提供します。
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");
Dim workbook = WorkBook.LoadCSV("test.csv", fileFormat:= ExcelFileFormat.XLSX, ListDelimiter:= ",")
Dim ws = workbook.DefaultWorkSheet
'
workbook.SaveAs("CsvToExcelConversion.xlsx")
var workbook = WorkBook.Load("test.xlsx");
//This is how you can export workbook to .xlsm format
workbook.SaveAs("test.xlsm");
var workbook = WorkBook.Load("test.xlsx");
//This is how you can export workbook to .xlsm format
workbook.SaveAs("test.xlsm");
Dim workbook = WorkBook.Load("test.xlsx")
'
'This is how you can export workbook to .xlsm format
workbook.SaveAs("test.xlsm")
var workbook = WorkBook.Load("test.xlsx");
var options = new HtmlExportOptions()
{
//This is how we can make row/column numbers visible in html document
OutputRowNumbers = true,
OutputColumnHeaders = true,
OutputHiddenColumns = true,
//This is how we can make hidden rows/columns visible in html document
OutputHiddenRows = true,
OutputLeadingSpacesAsNonBreaking = true
};
//This is how we can export 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 html document
OutputRowNumbers = true,
OutputColumnHeaders = true,
OutputHiddenColumns = true,
//This is how we can make hidden rows/columns visible in html document
OutputHiddenRows = true,
OutputLeadingSpacesAsNonBreaking = true
};
//This is how we can export workbook to the HTML file
workbook.ExportToHtml("workbook.html",options);
Dim workbook = WorkBook.Load("test.xlsx")
'
Dim options = New HtmlExportOptions() With {
.OutputRowNumbers = True,
.OutputColumnHeaders = True,
.OutputHiddenColumns = True,
.OutputHiddenRows = True,
.OutputLeadingSpacesAsNonBreaking = True
}
'
'This is how we can export workbook to the HTML file
workbook.ExportToHtml("workbook.html",options)
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});
Dim workbook = ExcelFile.Load("ComplexTemplate.xlsx")
workbook.Save("Convert.pdf", New PdfSaveOptions() With {.SelectionType = SelectionType.EntireFile})
// 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);
' Load an Excel file into the ExcelFile object.
Dim workbook = ExcelFile.Load("CombinedTemplate.xlsx")
' Create image save options.
Dim imageOptions = New ImageSaveOptions(ImageSaveFormat.Png) With {
.PageNumber = 0,
.Width = 1240,
.CropToContent = True
}
' Save the ExcelFile object to a PNG file.
workbook.Save("Output.png", imageOptions)
ExcelFile.Load("CSVTemplate.csv").Save("Convert.xlsx");
ExcelFile.Load("CSVTemplate.csv").Save("Convert.xlsx");
ExcelFile.Load("CSVTemplate.csv").Save("Convert.xlsx")
同様に、GemBox.Spreadsheetを使用して、C#アプリケーションからXLS、XLSX、ODS、CSV、およびHTMLファイル間で変換できます。
IronXLは商業用のC# Excelライブラリです。 開発目的で利用する場合は完全に無料ですが、商業的な展開にはライセンスが必要です。全てのIronXLライセンスSaaSおよびOEM再配布の有無にかかわらず、単一のプロジェクト、個人の開発者、エージェンシー、そしてグローバル企業向けに利用可能です。 各ライセンスには30日間の返金保証が含まれており、また1年間の製品サポートと更新、開発/ステージング/本番環境での利用有効性、および永久ライセンスが含まれています。(一回限りの購入). ライトライセンスは $749 から開始します。
GemBox.Spreadsheetも商用ライブラリです。 個人および商業用アプリケーションの両方で無料で使用できます。 しかし、プロフェッショナル用途としてもライセンスを取得することができます。 そのライセンス個人の開発者、小規模なチーム、大企業向けの使用を含みます。 ロイヤリティフリーの展開を提供します(サーバーまたはOEMライセンスは不要)12か月間の無料テクニカルサポート、無料バグ修正および新リリース。 シングル開発者パッケージは890ドルから始まります。
この記事では、両方のライブラリがユーザーにとってMicrosoft Excelスプレッドシートをロード、読み取り、編集、および変換することがいかに簡単であるかを示しています。 IronXL と GemBox.Spreadsheet の両方は、これらの活動を達成するための独自の強力なアプローチを提供しており、非常に一般的な読み書き自動化タスクを実行するための魅力的な選択肢です。
では、開発者はプロジェクトでどの.NET Excelライブラリを使用すべきでしょうか?
次の大規模プロジェクトのためにIronXLとGemBox.Spreadsheetのどちらを使用するか選ぶ際に考慮するべきポイントを以下に示します。
アクセシビリティ。 IronXLは使いやすさ、正確さ、そして速度を優先しています。 ライブラリは、ユーザーが一般的なExcelプログラミングのタスクを実行できるように設計されています。(読み込み、読み取り、書き込み、編集、範囲選択など。)迅速に、そして可能な限り少ないコード行数で。 ウェブサイトには大量のチュートリアル, 使用ガイド、およびコード例ユーザーを支援するために書かれた始めるそして、できるだけ早く、そしてできるだけ簡単に彼らの大きな目標を達成することができます。 さらに、IronXLには、ユーザーが抱える問題に迅速に対応するため、24時間週5日対応可能なエンジニアチームが待機しています。
もしサポート、ユーザーフレンドリーさ、実装の速さが最重要であるなら、開発者はIronXLの使用を検討するかもしれません。
参考までに、GemBox.Spreadsheetのウェブサイトにも。また、詳細な例のコレクション開発者が強力な機能セットを最大限に活用するためのサポートを提供します。
多様性。 GemBox.Spreadsheetの機能セットにより、開発者はこのチュートリアルで説明されている基本的なものを超えるExcel自動化タスクを実行することができます。 ユーザーは図形を描くExcelワークシート上で、ワークシートを編集するカスタムフォント新しいワークシートを作成するVBAマクロ, フォームコントロール、およびチャートコンポーネントExcelドキュメントをPDFとして保存するには暗号化 (あんごうか)以下のコンテンツを日本語に翻訳してください:デジタル署名その他の事項。 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の開始ライセンス価格 $749 は、価格に敏感な開発者やチームにとって非常に魅力的であることに注目する価値があります。
IronXL をお試しください無料試用IronXLの効率性を見るために 完全セットを購入Iron SuiteIronXLライセンス2つの価格で4つの追加ライブラリを手に入れましょう。*
9つの .NET API製品 オフィス文書用