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

C#でIronXLを使用してMS Excelファイルのデータを簡単にインポート、読み取り、操作する方法

Microsoft Excelファイルを扱うことは、多くの.NET開発者にとって日常的な要件です。 顧客データのインポート、財務レポートの処理、スプレッドシートやExcelワークブックからデータベースへのデータ移行など、開発者は、複雑な依存関係やExcelのインストールを必要とせずに、Excelファイルを読み込んだり、Excel(XLSX)ファイルをエクスポートしたりする信頼性の高い方法を必要としています。 IronXLは、Microsoft Officeをインストールする必要がなく、プラットフォーム間で動作する簡単なソリューションを提供します。

How to Easily Import, Read, and Manipulate MS Excel File Data in C# Using IronXL: Image 1 - IronXL.

C&numを使い始めるには; Excelデータをインポートするには?

IronXLを使えば、C#でのExcelインポートを数分で始めることができます。 Excelライブラリは、CSV、TSV、およびその他のスプレッドシート形式とともに、レガシーXLS形式と最新のXLSX形式の両方をシームレスに処理します。 Microsoft.Office.Interop.Excelに依存するソリューションとは異なり、IronXLは.NETまたは.NET Coreプラットフォーム上で独立して動作します。

How to Easily Import, Read, and Manipulate MS Excel File Data in C# Using IronXL: Image 2 - Cross Platform.

まず、NuGet Package Manager経由でIronXLをインストールするか、Visual StudioでManage NuGet packagesを選択してください:

Install-Package IronXL.Excel

How to Easily Import, Read, and Manipulate MS Excel File Data in C# Using IronXL: Image 3 - Installation.

一度インストールすれば、Excelデータのインポートは驚くほど簡単になります:

using IronXL;
static void Main(string[] args)
{
 // Load any Excel file
 WorkBook workBook = WorkBook.Load("ProductData.xlsx");
 // Access the first worksheet
 WorkSheet sheet = workBook.WorkSheets[0];
 // Read a cell value
 string value = sheet["B1"].StringValue;
 Console.WriteLine(value);
}
using IronXL;
static void Main(string[] args)
{
 // Load any Excel file
 WorkBook workBook = WorkBook.Load("ProductData.xlsx");
 // Access the first worksheet
 WorkSheet sheet = workBook.WorkSheets[0];
 // Read a cell value
 string value = sheet["B1"].StringValue;
 Console.WriteLine(value);
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

このコードは、ワークブックをロードし、ワークシートにアクセスし、セルの値を読み取るという、中核となるワークフローを示しています。 WorkBook.Load()メソッドは、XLS、XLSX、あるいはCSVなど、ファイル形式を自動的に検出します。直感的なインデクサ構文sheet["B1"]は、配列を扱うように自然にセルにアクセスします。 より複雑な操作については、IronXL API referenceで包括的なドキュメントを確認してください。

サンプル入力

How to Easily Import, Read, and Manipulate MS Excel File Data in C# Using IronXL: Image 4 - Excel Input.

出力

How to Easily Import, Read, and Manipulate MS Excel File Data in C# Using IronXL: Image 5 - Console Output.

ExcelのデータをC#オブジェクトに読み込むには? 実際のアプリケーションでは、単一セルの値以上のものが必要です。 IronXLはデータセット全体をインポートし、使用可能なC#オブジェクトに変換することを得意としています。 [構造化データを含むExcelファイル](/tutorials/how-to-read-excel-file-csharp/)をインポートする必要がある場合、ライブラリは複数のアプローチを提供します。 ```cs // Load the Excel file WorkBook workBook = WorkBook.Load("ProductData.xlsx"); WorkSheet sheet = workBook.DefaultWorkSheet; // Read a range of cells var products = new List(); foreach (var row in sheet.Rows) { var product = new Product { Id = row.Columns[0].IntValue, Name = row.Columns[1].StringValue, Price = row.Columns[2].DecimalValue, IsAvailable = row.Columns[3].BoolValue }; products.Add(product); } foreach (var product in products) { Console.WriteLine($"Id: {product.Id}, Name: {product.Name}, Price: {product.Price}, Available: {product.IsAvailable}"); } ``` この例では、行を繰り返し処理し、Excelデータを強く型付けされたC#オブジェクトにマッピングする方法を示します。 IntValue、StringValue、DecimalValueのような型付きプロパティは、型変換を自動的に処理します。 このアプローチにより、手作業による解析が不要になり、異なるデータ型を扱う際のエラーを減らすことができます。[Stack Overflow](https://stackoverflow.com/questions/15793442/how-to-read-data-from-excel-file-using-c-sharp) の多くの開発者は、Excel データ インポートに対するこのタイプセーフ アプローチを高く評価しています。 ### 出力 [How to Easily Import, Read, and Manipulate MS Excel File Data in C# Using IronXL: Image 6 - Object Output](/static-assets/excel/blog/csharp-import-excel/csharp-import-excel-6.webp). よりエレガントなデータアクセスのために、IronXLは範囲演算をサポートしています: ```cs // Read specific ranges of ProductData.xlsx file Range dataRange = sheet["A1:D5"]; // Calculate aggregates directly decimal sum = sheet["C1:C5"].Sum(); Console.WriteLine($"Sum of C1:C5: {sum}"); decimal max = sheet["C1:C5"].Max(c => c.DecimalValue); Console.WriteLine($"Max of C1:C5: {max}"); // Use LINQ for filtering var highValueOrders = dataRange .Where(cell => cell.DecimalValue > 100) .Select(cell => cell.Value) .ToList(); Console.WriteLine("High value orders (>100):"); // Print the high value orders to the console foreach (var order in highValueOrders) { Console.WriteLine(order); } ``` Rangeクラスは、複数のセルに同時にアクセスするコレクションのような機能を提供します。 LINQとの互換性は、開発者が使い慣れたC#パターンを使用してExcelデータをフィルタリング、変換、集計できることを意味します。 Sum()やMax()のような組み込みの集計メソッドは、最初にすべてのデータをメモリにロードすることなく、セル範囲に対して直接操作します。 ### 出力 [How to Easily Import, Read, and Manipulate MS Excel File Data in C# Using IronXL: Image 7 - Range Output](/static-assets/excel/blog/csharp-import-excel/csharp-import-excel-7.webp). ## ExcelをDataTableに変換するには? DataTableの変換は、データベース操作とデータバインディングのシナリオに不可欠です。 IronXLは[ExcelからDataTable](/blog/using-ironxl/excel-to-datatable-csharp-tutorial/)への変換を効率的に処理する組み込みメソッドを提供します。この機能はExcelスプレッドシートをSQL Serverや他のデータベースにインポートする必要がある場合に特に便利です。 ```cs using System.Data; // Load Excel file WorkBook workBook = WorkBook.Load("inventory.xlsx"); // Select first Excel worksheet WorkSheet sheet = workBook.WorkSheets.First(); // Convert to DataTable with headers DataTable dataTable = sheet.ToDataTable(true); // The DataTable is ready for database operations using (SqlBulkCopy bulkCopy = new SqlBulkCopy(connectionString)) { bulkCopy.DestinationTableName = "Inventory"; bulkCopy.WriteToServer(dataTable); } ``` ToDataTable() メソッドは、最初の行にヘッダが含まれているかどうかを示す boolean パラメータを受け付けます。 Trueに設定すると、IronXLは自動的に最初の行の値をDataTableの列名として使用します。 このDataTableは、ADO.NET操作、Entity Framework、およびデータバインディングコントロールとシームレスに統合されています。 SqlBulkCopyに関するMicrosoftのドキュメントでは、このパターンがいかに効率的に大規模なデータのインポートを処理するかを示しています。 変換プロセスをよりコントロールするために ```cs // Custom DataTable conversion DataTable customTable = new DataTable(); // Define columns based on Excel structure for (int col = 0; col < sheet.ColumnCount; col++) { customTable.Columns.Add($"Column{col + 1}", typeof(string)); } // Import data with validation foreach (var row in sheet.Rows) { var dataRow = customTable.NewRow(); for (int col = 0; col < sheet.ColumnCount; col++) { dataRow[col] = row.Columns[col].Value ?? DBNull.Value; } customTable.Rows.Add(dataRow); } // Print column headers foreach (DataColumn column in customTable.Columns) { Console.Write($"{column.ColumnName}\t"); } Console.WriteLine(); // Print each row foreach (DataRow row in customTable.Rows) { foreach (var item in row.ItemArray) { Console.Write($"{item}\t"); } Console.WriteLine(); } ``` このアプローチは、インポート時のデータ変換に柔軟性をもたらします。 Null値は、DBNull.Valueに変換することで潔く処理し、データベース操作との互換性を確保しています。 ### 出力 [How to Easily Import, Read, and Manipulate MS Excel File Data in C# Using IronXL: Image 8 - DataTable Output](/static-assets/excel/blog/csharp-import-excel/csharp-import-excel-8.webp). ## どのような高度な機能がデータ操作をサポートしますか? IronXLは複雑なシナリオに対応する強力な機能を備え、基本的な読み方を超えています。 ライブラリはExcelの数式を保持し、計算を動的に更新できるようにします。 [複雑なExcelワークブック](/how-to/create-spreadsheet/)を扱う開発者のために、インポート処理全体を通してデータの整合性を維持します。 [How to Easily Import, Read, and Manipulate MS Excel File Data in C# Using IronXL: Image 9 - Features](/static-assets/excel/blog/csharp-import-excel/csharp-import-excel-9.webp). ```cs // Read calculated values from formulas WorkSheet sheet = workBook.GetWorkSheet("Reports"); decimal calculatedTotal = sheet["E10"].DecimalValue; // Reads formula result // Formulas remain intact string formula = sheet["E10"].Formula; // Returns "=SUM(E2:E9)" ``` 数式サポートとは、複雑な計算を含むExcelファイルのインポートが、ビジネスロジックを再作成することなく機能することを意味します。 このライブラリは数式を自動的に評価し、元の数式構造を保持したまま計算値を返します。 この機能は、財務モデルや報告テンプレートを含む[Excelファイル](/examples/read-excel/)を読む必要がある場合に非常に貴重です。 クロスプラットフォーム互換性により、Windows、Linux、macOS、コンテナ環境で一貫した動作が保証されます。 この柔軟性により、IronXLはOfficeのインストールが不可能なクラウド・デプロイメントやマイクロサービス・アーキテクチャに理想的です。 [.NET Foundationのドキュメント](https://docs.microsoft.com/en-us/dotnet/core/introduction)は、Excelデータをインポートする際に、最新の.NETアプリケーションがこのプラットフォームの独立性からどのような恩恵を受けているかを強調しています。 Entity Frameworkの統合により、C# Excelインポートシナリオのデータベースワークフローが効率化されます: ```cs var products = sheet.Rows.Skip(1) .Select(row => new Product { Name = row.Columns[0].StringValue, Price = row.Columns[1].DecimalValue }) .ToList(); using (var context = new AppDbContext()) { context.Products.AddRange(products); await context.SaveChangesAsync(); } ``` このパターンは、最小限のコードでExcelからデータベースへの直接パイプラインを可能にし、データ移行やETLプロセスに最適です。 包括的なExcel操作機能については、IronXLをダウンロードしてデータ・インポート・ワークフローを合理化してください。 ## 結論 IronXLはExcelデータのインポートを複雑な課題から簡単なC#コードに変換します。 このライブラリの直感的なAPI、包括的なフォーマットのサポート、クロスプラットフォームの互換性は、Excelファイルの操作を必要とするプロダクションアプリケーションにとって実用的な選択肢となっています。 [How to Easily Import, Read, and Manipulate MS Excel File Data in C# Using IronXL: Image 10 - Licensing](/static-assets/excel/blog/csharp-import-excel/csharp-import-excel-10.webp). ExcelファイルをC#プロジェクトにインポートする準備はできましたか? [無料トライアルを開始](trial-license)してIronXLの全機能をお試しください。 詳細な実装ガイダンスについては、[完全なドキュメント](/docs/)を参照してください。 本番環境への導入については、[ライセンスオプション](/licensing/)を参照して、チームに合ったものを見つけてください。

よくある質問

C#でExcelデータをインポートするにはどうすればよいですか?

IronXLを使用すると、Microsoft Excelがシステムにインストールされていなくても、C#でExcelデータを簡単にインポートできます。

Excelファイル操作にIronXLを使用する利点は何ですか?

IronXLは、開発者が複雑な依存関係なしにC#でExcelファイルを読み書き、操作することを可能にし、さまざまなプラットフォームで動作します。

IronXLを使用するためにMicrosoft Officeをインストールする必要がありますか?

IronXLはMicrosoft Officeのインストールを不要にし、C#アプリケーション内でExcelファイルを直接操作できるようにします。

IronXLはXLSXとCSVの両方のファイル形式を扱えますか?

IronXLはXLSXやCSVを含む様々なExcelファイル形式をサポートしています。

IronXLは大きなExcelファイルの処理に適していますか?

IronXLは大きなExcelファイルを効率的に処理するように設計されており、開発者はパフォーマンスの問題なしに膨大なデータセットを処理することができます。

IronXLはどのようなプラットフォームをサポートしていますか?

IronXLは複数のプラットフォームと互換性があり、Excelファイルを扱うアプリケーションのクロスプラットフォーム開発とデプロイを可能にします。

IronXLはExcelからデータベースへのデータ移行をどのように簡素化しますか?

IronXLはExcelシートからデータを読み込んでエクスポートする簡単な方法を提供し、複雑なコーディングなしにデータベースへのデータ転送を容易にします。

IronXLを使ってExcelのレポート作成を自動化できますか?

IronXLはExcelレポート生成の自動化を可能にし、C#でExcelファイルをプログラムで作成、操作できるようにします。

IronXLは小規模からエンタープライズレベルのアプリケーションまで対応できますか?

IronXLは多用途で拡張性があるため、小規模なプロジェクトからエクセルファイルの操作を必要とする大規模なエンタープライズレベルのアプリケーションまで適しています。

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

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

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