IRONXLの使用 IronXLを使用して Excel ファイルを DataTable にインポートする カーティス・チャウ 更新日:2026年2月15日 IronXL をダウンロード NuGet ダウンロード DLL ダウンロード 無料トライアル LLM向けのコピー LLM向けのコピー LLM 用の Markdown としてページをコピーする ChatGPTで開く このページについてChatGPTに質問する ジェミニで開く このページについてGeminiに問い合わせる Grokで開く このページについてGrokに質問する 困惑の中で開く このページについてPerplexityに問い合わせる 共有する Facebook で共有 Xでシェア(Twitter) LinkedIn で共有 URLをコピー 記事をメールで送る C# IronXLを使用して Excel ファイルを DataTable にインポートする Excelファイルを手動で解析することが、開発者にとって一日の楽しみになることはめったにないというのは周知の事実だ。 誰もが経験したことがあるでしょう。古いOLEDB接続文字列と格闘したり、構造化されていないスプレッドシートデータを.NETアプリケーションが理解できる形式にマッピングしようとしたり。 C# の DataTable は、まさに平等化装置です。 これは完璧な橋渡し役を果たし、行と列をLINQクエリ、DataGridバインディング、またはSQLデータベースへの迅速なアクセスに適した馴染みのある構造に変換します。 IronXLはこのプロセスにおける面倒な作業をすべて引き受けてくれます。 複雑な設定を行う代わりに、単一の直感的なToDataTableメソッドを使用して変換を処理します。 レポート作成ツールを作成する場合でも、データ移行スクリプトを作成する場合でも、Excelデータを簡単にインポートする方法をご紹介します。 一緒にやってみたいですか? IronXLの無料トライアルを利用して、この強力なライブラリをぜひご自身でお試しください。 C# で Excel ファイルを DataTable にインポートするにはどうすればよいですか? C# で Excel ファイルを DataTable にインポートするには、WorkBook.Load を使用してワークブックを読み込み、対象のワークシートにアクセスして、ToDataTable メソッドを呼び出します。 この方法は、XLSX、XLS、XLSM、およびCSV形式のファイルに対応しています。 必要なクラスにアクセスするには、以下の名前空間を参照するようにしてください。 Visual StudioでNuGetパッケージマネージャーを使用して、以下のコマンドを実行してIronXLをインストールします。 Install-Package IronXl.Excel 次に、以下の簡潔なコードスニペットを使用してデータを移動させます。 using IronXL; using System; using System.Data; class Program { static void Main(string[] args) { // Load the Excel file from the specified path string filePath = "sales-data.xlsx"; WorkBook workbook = WorkBook.Load(filePath); // Access the first worksheet in the workbook WorkSheet worksheet = workbook.DefaultWorkSheet; // Convert worksheet to DataTable with first row as column headers DataTable dt = worksheet.ToDataTable(true); // Display the imported data foreach (DataRow row in dt.Rows) { Console.WriteLine(string.Join(" | ", row.ItemArray)); } } } using IronXL; using System; using System.Data; class Program { static void Main(string[] args) { // Load the Excel file from the specified path string filePath = "sales-data.xlsx"; WorkBook workbook = WorkBook.Load(filePath); // Access the first worksheet in the workbook WorkSheet worksheet = workbook.DefaultWorkSheet; // Convert worksheet to DataTable with first row as column headers DataTable dt = worksheet.ToDataTable(true); // Display the imported data foreach (DataRow row in dt.Rows) { Console.WriteLine(string.Join(" | ", row.ItemArray)); } } } Imports IronXL Imports System Imports System.Data Module Program Sub Main(args As String()) ' Load the Excel file from the specified path Dim filePath As String = "sales-data.xlsx" Dim workbook As WorkBook = WorkBook.Load(filePath) ' Access the first worksheet in the workbook Dim worksheet As WorkSheet = workbook.DefaultWorkSheet ' Convert worksheet to DataTable with first row as column headers Dim dt As DataTable = worksheet.ToDataTable(True) ' Display the imported data For Each row As DataRow In dt.Rows Console.WriteLine(String.Join(" | ", row.ItemArray)) Next End Sub End Module $vbLabelText $csharpLabel 出力 WorkBook.Load メソッドは、文字列 filePath で指定された場所から Excel ファイルを読み込み、すべての Excel シートデータを含むワークブック オブジェクトを作成します。 ToDataTable(true) パラメータは、最初の行に列ヘッダーが含まれていることを示し、それらは自動的にデータテーブルの列名として使用されます。 Excelファイルのデータをデータテーブルに読み込むための最適な方法は何ですか? Excelファイルの内容を効率的に読み込むには、ヘッダー行と生データの両方を処理する必要がある。 IronXLのToDataTableメソッドは、最初の行を列名として扱うかデータとして扱うかを決定するブール型のパラメータを受け取ります。 拡張プロパティの処理や複雑なセル型の変換には追加の設定が必要になる場合がありますが、デフォルトの方法でほとんどのケースを確実に処理できます。 using IronXL; using System.Data; // Load workbook from file path string filePath = @"C:\Data\inventory.xlsx"; WorkBook workbook = WorkBook.Load(filePath); WorkSheet worksheet = workbook.WorkSheets[0]; // First row as headers (true) or as data (false) DataTable dataTableWithHeaders = worksheet.ToDataTable(true); DataTable dataTableWithoutHeaders = worksheet.ToDataTable(false); // Process each row in the DataTable foreach (DataRow row in dataTableWithHeaders.Rows) { for (int i = 0; i < dataTableWithHeaders.Columns.Count; i++) { object value = row[i]; Console.Write($"{value}\t"); } Console.WriteLine(); } using IronXL; using System.Data; // Load workbook from file path string filePath = @"C:\Data\inventory.xlsx"; WorkBook workbook = WorkBook.Load(filePath); WorkSheet worksheet = workbook.WorkSheets[0]; // First row as headers (true) or as data (false) DataTable dataTableWithHeaders = worksheet.ToDataTable(true); DataTable dataTableWithoutHeaders = worksheet.ToDataTable(false); // Process each row in the DataTable foreach (DataRow row in dataTableWithHeaders.Rows) { for (int i = 0; i < dataTableWithHeaders.Columns.Count; i++) { object value = row[i]; Console.Write($"{value}\t"); } Console.WriteLine(); } Imports IronXL Imports System.Data ' Load workbook from file path Dim filePath As String = "C:\Data\inventory.xlsx" Dim workbook As WorkBook = WorkBook.Load(filePath) Dim worksheet As WorkSheet = workbook.WorkSheets(0) ' First row as headers (true) or as data (false) Dim dataTableWithHeaders As DataTable = worksheet.ToDataTable(True) Dim dataTableWithoutHeaders As DataTable = worksheet.ToDataTable(False) ' Process each row in the DataTable For Each row As DataRow In dataTableWithHeaders.Rows For i As Integer = 0 To dataTableWithHeaders.Columns.Count - 1 Dim value As Object = row(i) Console.Write($"{value}" & vbTab) Next Console.WriteLine() Next $vbLabelText $csharpLabel 出力 この柔軟性により、 IronXLは構造に関係なくExcelスプレッドシートファイルを処理するのに最適です。 EPPlusパッケージや、新しいOleDbDataAdapterインスタンスを必要とする従来の方法とは異なり、 IronXLは単一のメソッド呼び出しで変換を処理します。 このライブラリは、.NET Core、 .NET Frameworkをサポートしており、Microsoft Excelのインストールを必要とせずにクロスプラットフォーム展開が可能です。 複数のExcelワークシートをデータセットに変換するにはどうすればよいですか? Excel ブックに複数のシートが含まれている場合、DataSet に変換すると、各 Excel ワークシートがコレクション内の個別の DataTable として保持されます。 この手法は、レポート作成アプリケーションや複数シートのデータ処理に不可欠です。 using IronXL; using System; using System.Data; // Load multi-sheet workbook WorkBook workbook = WorkBook.Load("quarterly-reports.xlsx"); // Convert entire workbook to DataSet (each sheet becomes a DataTable) DataSet dataset = workbook.ToDataSet(); // Iterate through all tables in the DataSet foreach (DataTable table in dataset.Tables) { Console.WriteLine($"Sheet: {table.TableName}"); Console.WriteLine($"Rows: {table.Rows.Count}, Columns: {table.Columns.Count}"); foreach (DataRow row in table.Rows) { Console.WriteLine(string.Join(", ", row.ItemArray)); } } using IronXL; using System; using System.Data; // Load multi-sheet workbook WorkBook workbook = WorkBook.Load("quarterly-reports.xlsx"); // Convert entire workbook to DataSet (each sheet becomes a DataTable) DataSet dataset = workbook.ToDataSet(); // Iterate through all tables in the DataSet foreach (DataTable table in dataset.Tables) { Console.WriteLine($"Sheet: {table.TableName}"); Console.WriteLine($"Rows: {table.Rows.Count}, Columns: {table.Columns.Count}"); foreach (DataRow row in table.Rows) { Console.WriteLine(string.Join(", ", row.ItemArray)); } } Imports IronXL Imports System Imports System.Data ' Load multi-sheet workbook Dim workbook As WorkBook = WorkBook.Load("quarterly-reports.xlsx") ' Convert entire workbook to DataSet (each sheet becomes a DataTable) Dim dataset As DataSet = workbook.ToDataSet() ' Iterate through all tables in the DataSet For Each table As DataTable In dataset.Tables Console.WriteLine($"Sheet: {table.TableName}") Console.WriteLine($"Rows: {table.Rows.Count}, Columns: {table.Columns.Count}") For Each row As DataRow In table.Rows Console.WriteLine(String.Join(", ", row.ItemArray)) Next Next $vbLabelText $csharpLabel 出力 ToDataSet メソッドは、ワークシートごとに DataTable オブジェクトを含む新しい DataSet を作成します。 各テーブルの TableName プロパティには元の Excel シート名が反映されるため、処理中に特定のデータを簡単に参照できます。 Excelからデータベースにデータをインポートするにはどうすればよいですか? 一般的なワークフローとしては、Excelファイルのデータを読み込み、データベースシステムに挿入するという流れがある。 DataTable構造は、データベース操作においてADO.NETとシームレスに統合されます。 using IronXL; using System.Data; using System.Data.SqlClient; string filePath = @"C:\imports\customer-data.xlsx"; WorkBook workbook = WorkBook.Load(filePath); WorkSheet worksheet = workbook.DefaultWorkSheet; // Convert Excel data to DataTable DataTable dt = worksheet.ToDataTable(true); // Validate data before database insert if (dt == null || dt.Rows.Count == 0) { Console.WriteLine("No data to import"); return; } // Insert into database using SqlBulkCopy string connectionString = "Server=.;Database=Sales;Trusted_Connection=True;"; using (SqlConnection connection = new SqlConnection(connectionString)) { connection.Open(); using (SqlBulkCopy bulkCopy = new SqlBulkCopy(connection)) { bulkCopy.DestinationTableName = "Customers"; bulkCopy.WriteToServer(dt); } } Console.WriteLine($"Imported {dt.Rows.Count} records successfully"); using IronXL; using System.Data; using System.Data.SqlClient; string filePath = @"C:\imports\customer-data.xlsx"; WorkBook workbook = WorkBook.Load(filePath); WorkSheet worksheet = workbook.DefaultWorkSheet; // Convert Excel data to DataTable DataTable dt = worksheet.ToDataTable(true); // Validate data before database insert if (dt == null || dt.Rows.Count == 0) { Console.WriteLine("No data to import"); return; } // Insert into database using SqlBulkCopy string connectionString = "Server=.;Database=Sales;Trusted_Connection=True;"; using (SqlConnection connection = new SqlConnection(connectionString)) { connection.Open(); using (SqlBulkCopy bulkCopy = new SqlBulkCopy(connection)) { bulkCopy.DestinationTableName = "Customers"; bulkCopy.WriteToServer(dt); } } Console.WriteLine($"Imported {dt.Rows.Count} records successfully"); Imports IronXL Imports System.Data Imports System.Data.SqlClient Module Module1 Sub Main() Dim filePath As String = "C:\imports\customer-data.xlsx" Dim workbook As WorkBook = WorkBook.Load(filePath) Dim worksheet As WorkSheet = workbook.DefaultWorkSheet ' Convert Excel data to DataTable Dim dt As DataTable = worksheet.ToDataTable(True) ' Validate data before database insert If dt Is Nothing OrElse dt.Rows.Count = 0 Then Console.WriteLine("No data to import") Return End If ' Insert into database using SqlBulkCopy Dim connectionString As String = "Server=.;Database=Sales;Trusted_Connection=True;" Using connection As New SqlConnection(connectionString) connection.Open() Using bulkCopy As New SqlBulkCopy(connection) bulkCopy.DestinationTableName = "Customers" bulkCopy.WriteToServer(dt) End Using End Using Console.WriteLine($"Imported {dt.Rows.Count} records successfully") End Sub End Module $vbLabelText $csharpLabel このコードは、Excelファイルを読み込み、それをDataTableに変換し、データベースに一括挿入する方法を示しています。 nullチェックは、インポート操作を実行する前にデータの整合性を確保します。 データテーブルをExcelにエクスポートするにはどうすればよいですか? IronXLは双方向のデータフローをサポートしており、DataTableオブジェクトからExcelファイルを作成して、レポート作成やデータエクスポートに利用できます。 using IronXL; using System.Data; // Create sample DataTable DataTable dt = new DataTable("Products"); dt.Columns.Add("ProductID", typeof(int)); dt.Columns.Add("Name", typeof(string)); dt.Columns.Add("Price", typeof(decimal)); dt.Rows.Add(1, "Widget", 29.99m); dt.Rows.Add(2, "Gadget", 49.99m); // Create new workbook and load DataTable WorkBook workbook = WorkBook.Create(); workbook.LoadWorkSheetsFromDataSet(new DataSet { Tables = { dt } }); // Save as Excel file workbook.SaveAs("exported-products.xlsx"); using IronXL; using System.Data; // Create sample DataTable DataTable dt = new DataTable("Products"); dt.Columns.Add("ProductID", typeof(int)); dt.Columns.Add("Name", typeof(string)); dt.Columns.Add("Price", typeof(decimal)); dt.Rows.Add(1, "Widget", 29.99m); dt.Rows.Add(2, "Gadget", 49.99m); // Create new workbook and load DataTable WorkBook workbook = WorkBook.Create(); workbook.LoadWorkSheetsFromDataSet(new DataSet { Tables = { dt } }); // Save as Excel file workbook.SaveAs("exported-products.xlsx"); Imports IronXL Imports System.Data ' Create sample DataTable Dim dt As New DataTable("Products") dt.Columns.Add("ProductID", GetType(Integer)) dt.Columns.Add("Name", GetType(String)) dt.Columns.Add("Price", GetType(Decimal)) dt.Rows.Add(1, "Widget", 29.99D) dt.Rows.Add(2, "Gadget", 49.99D) ' Create new workbook and load DataTable Dim workbook As WorkBook = WorkBook.Create() workbook.LoadWorkSheetsFromDataSet(New DataSet With {.Tables = {dt}}) ' Save as Excel file workbook.SaveAs("exported-products.xlsx") $vbLabelText $csharpLabel 出力 LoadWorkSheetsFromDataSet メソッドは、DataTable オブジェクトを含む DataSet を受け取り、対応するワークシートを作成します。 DataTableをExcelにエクスポートする方法については、ドキュメントをご覧ください。 結論 IronXLは、Excelからデータテーブルへの変換の複雑さを、分かりやすいメソッド呼び出しに変換します。 単一のExcelワークシートをインポートする場合でも、複数のシートを含むワークブックを完全なデータセットに処理する場合でも、このライブラリはXLSXファイル、データ型の変換、およびストリームベースの読み込みを効率的に処理します。 DataTableの柔軟性とIronXLの直感的なAPIの組み合わせにより、データベース統合、レポートシステム、アプリケーションデータバインディングのための強力なデータワークフローが実現します。 IronXLをダウンロードしてExcelデータの処理を効率化するか、本番環境への導入用にライセンスをご購入ください。 今IronXLを始めましょう。 無料で始める よくある質問 C# を使用して Excel ファイルを DataTable にインポートするにはどうすればよいですか? IronXLを使用すると、C#でExcelファイルをDataTableに簡単にインポートできます。IronXLは、Excelファイルを読み込み、DataTableに変換してさらに操作するためのシンプルなAPIを提供します。 C# での Excel ファイル操作に IronXL を使用する利点は何ですか? IronXLは、Excelファイルの読み込み、書き込み、そしてDataTablesなどの様々な形式への変換など、C#でExcelファイルを操作するための堅牢なソリューションを提供します。主要なExcelファイル形式をすべてサポートし、高いパフォーマンスと使いやすさを実現します。 IronXLは.NET Coreに対応していますか? はい、 IronXL は.NET Coreと完全に互換性があり、Excel ファイルの操作を必要とするアプリケーションのクロスプラットフォーム開発と展開を可能にします。 IronXL を使用して、さまざまな形式の Excel ファイルを読み取ることはできますか? IronXL は、XLSX、XLS、CSV、TSV などさまざまな形式の Excel ファイルの読み取りをサポートしており、さまざまな種類の Excel データを柔軟に処理できます。 IronXL はExcel ファイルのセキュリティ機能をサポートしていますか? はい、 IronXL はパスワードで保護された Excel ファイルをサポートしているため、C# アプリケーションでセキュリティ保護された Excel ドキュメントを読み込んで操作できます。 IronXLを使用して Excel ファイルを DataTable に変換するにはどうすればよいですか? IronXL を使用すると、ワークブックを読み込み、ワークシートを選択し、組み込みメソッドを使用してワークシート データを DataTable にエクスポートすることで、Excel ファイルを DataTable に変換できます。 IronXL を使用するとどのような種類のアプリケーションがメリットを得られますか? IronXL は、データ分析ツール、レポート システム、Excel データのインポート、エクスポート、変更が必要なソフトウェアなど、Excel データの操作を必要とするあらゆるアプリケーションに最適です。 Excel ファイルを DataTable にインポートした後、 IronXL を使用して編集できますか? はい、 IronXL、Excel ファイルを DataTable にインポートした後でも編集および更新できるため、変更内容の変更と保存をシームレスに行うことができます。 IronXLを使用するにはどの程度のレベルのコーディング経験が必要ですか? IronXLは使いやすさを重視して設計されており、あらゆる経験レベルの開発者が利用できるユーザーフレンドリーな API を備えているため、初心者から上級者まで誰でも利用できます。 カーティス・チャウ 今すぐエンジニアリングチームとチャット テクニカルライター 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 ワークブックを読み込む方法について説明します。 詳しく読む C# で CSV をインポートする | ASP.NET Coreチュートリアル | IronXLExcelオブジェクトをC#で解...
更新日 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 ワークブックを読み込む方法について説明します。 詳しく読む