IRONXLの使用 IronXLを使用して C# で Excel データをインポートする方法 カーティス・チャウ 更新日:2026年2月27日 IronXL をダウンロード NuGet ダウンロード DLL ダウンロード 無料トライアル LLM向けのコピー LLM向けのコピー LLM 用の Markdown としてページをコピーする ChatGPTで開く このページについてChatGPTに質問する ジェミニで開く このページについてGeminiに問い合わせる Grokで開く このページについてGrokに質問する 困惑の中で開く このページについてPerplexityに問い合わせる 共有する Facebook で共有 Xでシェア(Twitter) LinkedIn で共有 URLをコピー 記事をメールで送る Microsoft Excelファイルを扱うことは、多く for .NET開発者にとって日常的な要件です。 顧客データのインポート、財務レポートの処理、スプレッドシートからデータベースへのデータの移行など、開発者は複雑な依存関係や Excel のインストールを必要とせずに Excel ファイルを読み取るための信頼性の高い方法を必要とします。 Microsoft.Office.Interop による COM オートメーションなどの従来のアプローチでは、完全な Office のインストールが必要となり、プラットフォームの制限が導入され、脆弱な展開依存関係が生じます。 IronXL は、プラットフォーム間で機能する簡単なソリューションを提供し、これらの問題をすべて解消し、管理された.NETコードから直接 Excel を操作できるようにします。 IronXLをインストールして Excel インポートを開始するにはどうすればよいですか? IronXLを使えば、C#でのExcelインポートを数分で始めることができます。 Excel ライブラリは、従来の XLS 形式と最新の XLSX 形式に加えて、 CSV 、TSV、その他のスプレッドシート形式も処理します。 Microsoft.Office.Interop.Excelに依存するソリューションとは異なり、IronXLは.NETまたは.NET Coreプラットフォーム上で独立して動作します。 NuGetパッケージ マネージャーまたは.NET CLI を使用してIronXL をインストールします。 Visual Studio のNuGetパッケージの管理ダイアログを使用して、"IronXL"を検索することもできます。 Install-Package IronXL dotnet add package IronXL Install-Package IronXL dotnet add package IronXL SHELL バージョンの互換性や依存関係の注意事項を含む完全なインストールの詳細については、 IronXL NuGetインストール ガイドを参照してください。 追加のランタイム依存関係や Office コンポーネントは必要ありません。パッケージは自己完結型です。 パッケージをインストールすると、Excel データのインポートは簡単になります。 using IronXL; // 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; // 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); $vbLabelText $csharpLabel このコードは、ワークブックをロードし、ワークシートにアクセスし、セルの値を読み取るという、中核となるワークフローを示しています。 WorkBook.Load() メソッドは、ファイル形式(XLS、XLSX、CSV)を自動的に検出します。直感的なインデクサー構文 sheet["B1"] により、配列の操作と同じくらい自然なセルへのアクセスが可能になります。 利用可能なメンバーとオーバーロードの完全なリファレンスについては、 IronXL API ドキュメントを参照してください。 サンプル入力 出力 Excel データを C# オブジェクトに読み込むにはどうすればよいでしょうか? 実際のアプリケーションでは、単一セルの値以上のものが必要です。 IronXLはデータセット全体をインポートし、使用可能なC#オブジェクトに変換することを得意としています。 構造化された Excel データをインポートする必要がある場合、ライブラリはドメイン モデルに直接マップする複数のアプローチを提供します。 以下の例では、ワークシートから行を読み取り、各行を型指定された Product オブジェクトにマップします。 using IronXL; // Load the Excel file WorkBook workBook = WorkBook.Load("ProductData.xlsx"); WorkSheet sheet = workBook.DefaultWorkSheet; // Map rows to typed objects var products = new List<Product>(); 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}" ); } using IronXL; // Load the Excel file WorkBook workBook = WorkBook.Load("ProductData.xlsx"); WorkSheet sheet = workBook.DefaultWorkSheet; // Map rows to typed objects var products = new List<Product>(); 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}" ); } $vbLabelText $csharpLabel 型指定されたプロパティ (DecimalValue、および BoolValue) は、型変換を自動的に処理します。 このアプローチにより、手動による解析が不要になり、データ型が混在する列を扱う際のエラーが削減されます。Stack Overflowの多くの開発者は、Excelデータのインポートにおけるこの型安全なアプローチを高く評価しています。 出力 セル範囲と LINQ をどのように操作しますか? 集計計算とフィルターされたクエリの場合、 IronXL は組み込みの LINQ 互換性を備えた範囲操作をサポートします。 using IronXL; WorkBook workBook = WorkBook.Load("ProductData.xlsx"); WorkSheet sheet = workBook.DefaultWorkSheet; // Read a named cell range Range dataRange = sheet["A1:D5"]; // Calculate aggregates directly on a range 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}"); // Filter using LINQ var highValueOrders = dataRange .Where(cell => cell.DecimalValue > 100) .Select(cell => cell.Value) .ToList(); Console.WriteLine("Orders above 100:"); foreach (var order in highValueOrders) { Console.WriteLine(order); } using IronXL; WorkBook workBook = WorkBook.Load("ProductData.xlsx"); WorkSheet sheet = workBook.DefaultWorkSheet; // Read a named cell range Range dataRange = sheet["A1:D5"]; // Calculate aggregates directly on a range 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}"); // Filter using LINQ var highValueOrders = dataRange .Where(cell => cell.DecimalValue > 100) .Select(cell => cell.Value) .ToList(); Console.WriteLine("Orders above 100:"); foreach (var order in highValueOrders) { Console.WriteLine(order); } $vbLabelText $csharpLabel Range クラスは、複数のセルに同時にコレクションのようなアクセスを提供します。 LINQとの互換性により、中間コレクションへの変換を必要とせず、使い慣れたC#パターンを使用してExcelデータをフィルタリング、変換、集計できます。Max()などの組み込み集計メソッドは、セル範囲に直接適用されます。 ワークブック データの読み取りの詳細については、" IronXL Excel ファイル読み取りガイド"を参照してください。 出力 C# で Excel を DataTable に変換するにはどうすればよいでしょうか? DataTableの変換は、データベース操作とデータバインディングのシナリオに不可欠です。 IronXL には、Excel から DataSet または DataTable への変換を処理する組み込みメソッドが用意されています。 この機能は、Excel スプレッドシートを SQL Server またはその他のリレーショナル データベースにインポートする必要がある場合に特に便利です。 結果のオブジェクトは標準の System.Data.DataTable であるため、データ アクセス層を変更することなく、ADO.NET と互換性のある任意のコード パスで動作します。 using IronXL; using System.Data; using System.Data.SqlClient; // Load Excel file WorkBook workBook = WorkBook.Load("inventory.xlsx"); // Select the first worksheet WorkSheet sheet = workBook.WorkSheets.First(); // Convert to DataTable -- first row becomes column headers DataTable dataTable = sheet.ToDataTable(true); // Use SqlBulkCopy to insert directly into SQL Server string connectionString = "Data Source=.;Initial Catalog=InventoryDB;Integrated Security=True;"; using (SqlBulkCopy bulkCopy = new SqlBulkCopy(connectionString)) { bulkCopy.DestinationTableName = "Inventory"; bulkCopy.WriteToServer(dataTable); } using IronXL; using System.Data; using System.Data.SqlClient; // Load Excel file WorkBook workBook = WorkBook.Load("inventory.xlsx"); // Select the first worksheet WorkSheet sheet = workBook.WorkSheets.First(); // Convert to DataTable -- first row becomes column headers DataTable dataTable = sheet.ToDataTable(true); // Use SqlBulkCopy to insert directly into SQL Server string connectionString = "Data Source=.;Initial Catalog=InventoryDB;Integrated Security=True;"; using (SqlBulkCopy bulkCopy = new SqlBulkCopy(connectionString)) { bulkCopy.DestinationTableName = "Inventory"; bulkCopy.WriteToServer(dataTable); } $vbLabelText $csharpLabel ToDataTable() メソッドは、最初の行にヘッダーが含まれているかどうかを示すブール型パラメータを受け入れます。 true に設定すると、 IronXL は最初の行の値を列名として自動的に使用します。 生成された DataTable は、追加の構成なしで ADO .NET、Entity Framework、およびデータ バインディング コントロールと統合されます。 変換プロセスをより細かく制御するには、DataTable を手動で構築できます。 using IronXL; using System.Data; WorkBook workBook = WorkBook.Load("inventory.xlsx"); WorkSheet sheet = workBook.WorkSheets.First(); // Build DataTable manually for custom column types or validation DataTable customTable = new DataTable(); for (int col = 0; col < sheet.ColumnCount; col++) { customTable.Columns.Add($"Column{col + 1}", typeof(string)); } 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 headers foreach (DataColumn column in customTable.Columns) { Console.Write($"{column.ColumnName}\t"); } Console.WriteLine(); // Print data rows foreach (DataRow row in customTable.Rows) { foreach (var item in row.ItemArray) { Console.Write($"{item}\t"); } Console.WriteLine(); } using IronXL; using System.Data; WorkBook workBook = WorkBook.Load("inventory.xlsx"); WorkSheet sheet = workBook.WorkSheets.First(); // Build DataTable manually for custom column types or validation DataTable customTable = new DataTable(); for (int col = 0; col < sheet.ColumnCount; col++) { customTable.Columns.Add($"Column{col + 1}", typeof(string)); } 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 headers foreach (DataColumn column in customTable.Columns) { Console.Write($"{column.ColumnName}\t"); } Console.WriteLine(); // Print data rows foreach (DataRow row in customTable.Rows) { foreach (var item in row.ItemArray) { Console.Write($"{item}\t"); } Console.WriteLine(); } $vbLabelText $csharpLabel このアプローチにより、インポート時に完全な柔軟性が得られます。 Null 値は、DBNull.Value に変換することで適切に処理され、データベースの列制約との互換性が確保されます。 データをファイルに書き戻す方法の詳細については、" IronXL Excel ファイル書き込みガイド"を参照してください。 出力 数式、複数シートのワークブック、Entity Framework をどのように操作しますか? IronXL は、基本的な読み取り機能を超え、複雑な現実世界のシナリオに対応する機能を備えています。 ライブラリは Excel の数式を保持し、計算を動的に評価できるようにします。 複雑な Excel ブックを扱う開発者にとって、これによりインポート プロセス全体を通じてデータの整合性が維持されます。 数式と計算値の読み方 using IronXL; WorkBook workBook = WorkBook.Load("FinancialReport.xlsx"); WorkSheet sheet = workBook.GetWorkSheet("Reports"); // Read the evaluated result of a formula cell decimal calculatedTotal = sheet["E10"].DecimalValue; Console.WriteLine($"Total: {calculatedTotal}"); // Read the formula string itself string formula = sheet["E10"].Formula; Console.WriteLine($"Formula: {formula}"); // e.g. "=SUM(E2:E9)" using IronXL; WorkBook workBook = WorkBook.Load("FinancialReport.xlsx"); WorkSheet sheet = workBook.GetWorkSheet("Reports"); // Read the evaluated result of a formula cell decimal calculatedTotal = sheet["E10"].DecimalValue; Console.WriteLine($"Total: {calculatedTotal}"); // Read the formula string itself string formula = sheet["E10"].Formula; Console.WriteLine($"Formula: {formula}"); // e.g. "=SUM(E2:E9)" $vbLabelText $csharpLabel 数式のサポートにより、複雑な計算を含む Excel ファイルをインポートしても、コード内でビジネス ロジックを再作成する必要はありません。 ライブラリは数式を自動的に評価し、元の数式文字列を保持しながら計算された値を返します。 これは、ネストされた数式を含む財務モデルやレポート テンプレートをインポートするときに非常に役立ちます。 クロスプラットフォーム互換性により、Windows、Linux、macOS、コンテナ環境で一貫した動作が保証されます。 これにより、 IronXL は、Office のインストールが不可能なクラウド展開やマイクロサービスに最適です。 .NET Foundation のドキュメントでは、最新 for .NETアプリケーションがプラットフォームの独立性からどのようなメリットを得るのかが詳しく説明されています。 ExcelデータとEntity Frameworkの統合 Entity Framework 統合により、Excel からデータベースへの直接パイプラインが作成されます。 次のパターンは、 .NET 10 のトップレベル ステートメントで適切に機能します。 using IronXL; WorkBook workBook = WorkBook.Load("ProductData.xlsx"); WorkSheet sheet = workBook.DefaultWorkSheet; // Skip the header row, map remaining rows to entity objects 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(); await context.Products.AddRangeAsync(products); await context.SaveChangesAsync(); Console.WriteLine($"Imported {products.Count} products."); using IronXL; WorkBook workBook = WorkBook.Load("ProductData.xlsx"); WorkSheet sheet = workBook.DefaultWorkSheet; // Skip the header row, map remaining rows to entity objects 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(); await context.Products.AddRangeAsync(products); await context.SaveChangesAsync(); Console.WriteLine($"Imported {products.Count} products."); $vbLabelText $csharpLabel このパターンにより、最小限のコードで Excel からデータベースへの直接移行が可能になり、ETL プロセス、1 回限りのデータ移行、スケジュールされたインポート ジョブに適しています。 LINQプロジェクションはコンテキスト保存前にメモリ内で実行されるため、検証や変換ロジックを同じステップで適用できます。C#データから新しいExcelファイルを作成するには、 IronXL Excelファイル作成ガイドをご覧ください。 サポートされているファイル形式 IronXL は、追加のライブラリや Office をインストールすることなく、幅広いスプレッドシート形式を処理します。 次の表は、サポートされている形式とその使用例をまとめたものです。 IronXLでサポートされている Excel ファイル形式 形式 拡大 注意事項 Excelワークブック .xlsx Excel 2007以降のデフォルト形式 レガシー Excel ワークブック .xls 古いバージョンのExcelと互換性があります カンマ区切り値 .csv 広くサポートされているプレーンテキストの表形式データ タブ区切り値 .tsv カンマが埋め込まれたデータに適しています Excel バイナリ ワークブック .xlsb 大きなファイル用のコンパクトなバイナリ形式 データをこれらの形式でエクスポートするには、 IronXLエクスポート Excel ガイドを参照してください。 インポート中にセルの書式設定をどのように処理しますか? Excel ファイルをインポートする場合、セルの書式設定を保持または検査することは、生の値を読み取ることと同じくらい重要です。 IronXL は、すべてのセルのフォント、色、配置、境界線のプロパティを公開するため、検証ルールを適用したり、プログラムでスタイルを再現したりできます。 これは、視覚的な書式設定が意味を持つレポート(たとえば、リスク レベルを示す色付きのセルや、合計を示す太字の行など)に特に役立ちます。 たとえば、セルに太字のテキストが含まれているかどうか (行が要約行または合計行であることを示す一般的なシグナル) を確認してから、インポートしたデータセットに含めるかどうかを決定することができます。 using IronXL; WorkBook workBook = WorkBook.Load("StyledReport.xlsx"); WorkSheet sheet = workBook.DefaultWorkSheet; foreach (var row in sheet.Rows) { var firstCell = row.Columns[0]; // Skip rows where the first cell is bold (typically header or total rows) if (firstCell.Style.Font.Bold) { continue; } Console.WriteLine($"Data row: {firstCell.StringValue}"); } using IronXL; WorkBook workBook = WorkBook.Load("StyledReport.xlsx"); WorkSheet sheet = workBook.DefaultWorkSheet; foreach (var row in sheet.Rows) { var firstCell = row.Columns[0]; // Skip rows where the first cell is bold (typically header or total rows) if (firstCell.Style.Font.Bold) { continue; } Console.WriteLine($"Data row: {firstCell.StringValue}"); } $vbLabelText $csharpLabel 数値書式文字列や背景色へのアクセスを含む、セルと範囲の書式設定に関する完全なリファレンスについては、 IronXLセル書式設定ガイドを参照してください。 処理後に出力ファイルにマージ操作を適用することもできます。IronXL のセルのマージ ガイドを参照してください。 プロジェクトに適したIronXLライセンスを選択するにはどうすればよいでしょうか? IronXL は、プロジェクトの規模に合わせて柔軟なライセンス オプションを提供します。 評価用に無料の試用ライセンスが用意されており、開発中に時間制限なしですべての機能にアクセスできます。 試用版では出力ファイルに透かしが追加されますが、有効な製品版ライセンスでは透かしが削除されます。 実稼働アプリケーションを構築するチーム向けに、 IronXLライセンスには、個々の開発者、チーム、組織全体の展開のオプションが含まれています。 すべての製造ライセンスには以下が含まれます: ロイヤリティフリーの再配布権 IronXL開発チームからの優先サポート ライセンス期間中、すべての最新版およびマイナーバージョンのアップデートにアクセスできます IronXL を他の Excel ライブラリと併せて評価する場合は、 IronXL機能の概要に、各層に含まれる内容の詳細な内訳が記載されています。 今すぐプロジェクトでIronXLを使い始めるには、 IronXL製品ページにアクセスするか、ライブラリのすべての機能を網羅したセットアップ ガイド、ハウツー記事、API リファレンスなどのIronXLドキュメントを直接参照してください。 よくある質問 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ボットを作成したりして、技術に対する愛情と創造性を組み合わせています。 関連する記事 更新日 2026年3月1日 ASP .NET C# で Excel ファイルをダウンロード: XLSX、CSV などにデータをエクスポート C#とIronXLを使用して、 ASP.NET CoreでExcelファイルをダウンロードします。MVCコントローラーからMemoryStreamとFile()を使用して、XLSX、CSV、XML形式でデータをエクスポートします。コード例も含まれています。 詳しく読む 更新日 2026年3月1日 IronXLを使用してBlazorで Excel ファイルをエクスポートする方法 IronXLを使用してBlazor Server アプリケーションから Excel にデータをエクスポートする方法を学びます。このガイドでは、プロジェクトのセットアップ、サービス設計、条件付き書式、複数シートのレポート、エラー処理について、完全な C# コード例とともに説明します。 詳しく読む 更新日 2026年2月27日 StreamReader の代わりに C# で Excel ファイルを読み取る方法 StreamReader が Excel ファイルを読み取れない理由と、 IronXL を使用して C# .NETのディスクまたはメモリ ストリームから XLSX および XLS ワークブックを読み込む方法について説明します。 詳しく読む IronXLを使用して C# で CSV ファイルを作成する方法C#でExcelピボットテーブル...
更新日 2026年3月1日 ASP .NET C# で Excel ファイルをダウンロード: XLSX、CSV などにデータをエクスポート C#とIronXLを使用して、 ASP.NET CoreでExcelファイルをダウンロードします。MVCコントローラーからMemoryStreamとFile()を使用して、XLSX、CSV、XML形式でデータをエクスポートします。コード例も含まれています。 詳しく読む
更新日 2026年3月1日 IronXLを使用してBlazorで Excel ファイルをエクスポートする方法 IronXLを使用してBlazor Server アプリケーションから Excel にデータをエクスポートする方法を学びます。このガイドでは、プロジェクトのセットアップ、サービス設計、条件付き書式、複数シートのレポート、エラー処理について、完全な C# コード例とともに説明します。 詳しく読む
更新日 2026年2月27日 StreamReader の代わりに C# で Excel ファイルを読み取る方法 StreamReader が Excel ファイルを読み取れない理由と、 IronXL を使用して C# .NETのディスクまたはメモリ ストリームから XLSX および XLS ワークブックを読み込む方法について説明します。 詳しく読む