IronXL ハウツー データセットとしてインポートおよびエクスポートする C#でDataSet/DataTableをインポート&エクスポートする方法 カーティス・チャウ 更新日:2026年1月10日 IronXL をダウンロード NuGet ダウンロード DLL ダウンロード 無料トライアル LLM向けのコピー LLM向けのコピー LLM 用の Markdown としてページをコピーする ChatGPTで開く このページについてChatGPTに質問する ジェミニで開く このページについてGeminiに問い合わせる Grokで開く このページについてGrokに質問する 困惑の中で開く このページについてPerplexityに問い合わせる 共有する Facebook で共有 Xでシェア(Twitter) LinkedIn で共有 URLをコピー 記事をメールで送る This article was translated from English: Does it need improvement? Translated View the article in English IronXLは単一のメソッド呼び出しでExcelのワークブックとデータセットを変換します。データセットをワークブックにインポートするにはLoadWorkSheetsFromDataSet()を使用し、シートとテーブルを自動的にマッピングしてワークブックをデータセットとしてエクスポートするにはToDataSet()を使用します。 データセットは、複数の関連テーブル、リレーションシップ、制約を含むデータのインメモリ表現です。 データベース、XML、その他のソースからのデータを扱うために使用されます。 C#でExcelファイルを扱う場合、DataSetは、データ駆動型アプリケーションと統合する.NETでおなじみの構造を提供します。 DataTableは、DataSet内の行と列を持つ単一のテーブルを表します。 IronXLはエクセルの各ワークシートを対応するDataTableに自動的にマッピングし、変換時に列見出しとデータ型を保持します。 クイックスタート: ワークブックを System.Data.DataSet として即座にエクスポート ワークブックをデータセットに変換するには、1回のメソッド呼び出しが必要です。 この例では、ToDataSetを使用して、ワークブック全体、つまり各シートをDataTableとしてエクスポートします。 今すぐ NuGet で PDF を作成してみましょう: NuGet パッケージ マネージャーを使用して IronXL をインストールします PM > Install-Package IronXL.Excel このコード スニペットをコピーして実行します。 DataSet ds = WorkBook.Create().ToDataSet(useFirstRowAsColumnNames: true); 実際の環境でテストするためにデプロイする 今すぐ無料トライアルでプロジェクトに IronXL を使い始めましょう 30日間無料トライアル ### 最小限のワークフロー(5ステップ) DataSet としてインポートおよびエクスポートするための C# ライブラリをダウンロードします。 Prepare the `DataSet` to import into a spreadsheet object Use the LoadWorkSheetsFromDataSet method to import the `DataSet` into the workbook Use the ToDataSet method to export the workbook as a `DataSet` 変換結果を確認する IronXLを使い始める データセットをワークブックに読み込むには? 静的な LoadWorkSheetsFromDataSet<//code> メソッドを使用して、ワークブックに DataSet<//code> をインポートします。 このメソッドは、DataSetとWorkbookオブジェクトの両方を必要とします。 まず、Createメソッドを使用してワークブックを作成します。 メソッドにDataSetオブジェクトとworkbookオブジェクトを渡します。 :path=/static-assets/excel-content-code-examples/how-to/export-dataset-datatable-load.cs // このコードスニペットは利用できません! ' このコードスニペットは利用できません! $vbLabelText $csharpLabel DataSet内の各DataTableは、個別のワークシートになります。 テーブル名はワークシート名となり、データ構成を維持します。 複数のデータソースについては、新しいスプレッドシートの作成または既存のワークシートの管理と組み合わせてください。 複数のテーブルを持つデータセットをロードする包括的な例を示します: using IronXL; using System.Data; // Create a DataSet with multiple tables DataSet salesData = new DataSet("CompanySales"); // Create and populate a products table DataTable productsTable = new DataTable("Products"); productsTable.Columns.Add("ProductID", typeof(int)); productsTable.Columns.Add("ProductName", typeof(string)); productsTable.Columns.Add("Price", typeof(decimal)); // Add sample data productsTable.Rows.Add(1, "Laptop", 999.99m); productsTable.Rows.Add(2, "Mouse", 19.99m); productsTable.Rows.Add(3, "Keyboard", 49.99m); // Create and populate a sales table DataTable salesTable = new DataTable("Sales"); salesTable.Columns.Add("SaleID", typeof(int)); salesTable.Columns.Add("ProductID", typeof(int)); salesTable.Columns.Add("Quantity", typeof(int)); salesTable.Columns.Add("Date", typeof(DateTime)); // Add sample sales data salesTable.Rows.Add(1, 1, 5, DateTime.Now); salesTable.Rows.Add(2, 2, 25, DateTime.Now.AddDays(-1)); salesTable.Rows.Add(3, 3, 10, DateTime.Now.AddDays(-2)); // Add tables to DataSet salesData.Tables.Add(productsTable); salesData.Tables.Add(salesTable); // Create workbook and load DataSet WorkBook workBook = WorkBook.Create(); WorkBook.LoadWorkSheetsFromDataSet(salesData, workBook); // Save the workbook with all imported data workBook.SaveAs("SalesReport.xlsx"); using IronXL; using System.Data; // Create a DataSet with multiple tables DataSet salesData = new DataSet("CompanySales"); // Create and populate a products table DataTable productsTable = new DataTable("Products"); productsTable.Columns.Add("ProductID", typeof(int)); productsTable.Columns.Add("ProductName", typeof(string)); productsTable.Columns.Add("Price", typeof(decimal)); // Add sample data productsTable.Rows.Add(1, "Laptop", 999.99m); productsTable.Rows.Add(2, "Mouse", 19.99m); productsTable.Rows.Add(3, "Keyboard", 49.99m); // Create and populate a sales table DataTable salesTable = new DataTable("Sales"); salesTable.Columns.Add("SaleID", typeof(int)); salesTable.Columns.Add("ProductID", typeof(int)); salesTable.Columns.Add("Quantity", typeof(int)); salesTable.Columns.Add("Date", typeof(DateTime)); // Add sample sales data salesTable.Rows.Add(1, 1, 5, DateTime.Now); salesTable.Rows.Add(2, 2, 25, DateTime.Now.AddDays(-1)); salesTable.Rows.Add(3, 3, 10, DateTime.Now.AddDays(-2)); // Add tables to DataSet salesData.Tables.Add(productsTable); salesData.Tables.Add(salesTable); // Create workbook and load DataSet WorkBook workBook = WorkBook.Create(); WorkBook.LoadWorkSheetsFromDataSet(salesData, workBook); // Save the workbook with all imported data workBook.SaveAs("SalesReport.xlsx"); Imports IronXL Imports System.Data ' Create a DataSet with multiple tables Dim salesData As New DataSet("CompanySales") ' Create and populate a products table Dim productsTable As New DataTable("Products") productsTable.Columns.Add("ProductID", GetType(Integer)) productsTable.Columns.Add("ProductName", GetType(String)) productsTable.Columns.Add("Price", GetType(Decimal)) ' Add sample data productsTable.Rows.Add(1, "Laptop", 999.99D) productsTable.Rows.Add(2, "Mouse", 19.99D) productsTable.Rows.Add(3, "Keyboard", 49.99D) ' Create and populate a sales table Dim salesTable As New DataTable("Sales") salesTable.Columns.Add("SaleID", GetType(Integer)) salesTable.Columns.Add("ProductID", GetType(Integer)) salesTable.Columns.Add("Quantity", GetType(Integer)) salesTable.Columns.Add("Date", GetType(DateTime)) ' Add sample sales data salesTable.Rows.Add(1, 1, 5, DateTime.Now) salesTable.Rows.Add(2, 2, 25, DateTime.Now.AddDays(-1)) salesTable.Rows.Add(3, 3, 10, DateTime.Now.AddDays(-2)) ' Add tables to DataSet salesData.Tables.Add(productsTable) salesData.Tables.Add(salesTable) ' Create workbook and load DataSet Dim workBook As WorkBook = WorkBook.Create() WorkBook.LoadWorkSheetsFromDataSet(salesData, workBook) ' Save the workbook with all imported data workBook.SaveAs("SalesReport.xlsx") $vbLabelText $csharpLabel このアプローチは、SQLデータベースからデータをエクスポートするときや、複数のソースからExcel形式にデータを統合するときに効果的です。 さまざまなファイル形式からのスプレッドシートのインポートについては、既存のスプレッドシートの読み込み方法をご覧ください。 ワークブックをデータセットとしてエクスポートするには? ToDataSetメソッドは、ワークブックをSystem.DataSetに変換し、各ワークシートはSystem.Data.DataTableになります。 Excelワークブック上でこのメソッドを呼び出し、それをDataSetオブジェクトに変換します。 useFirstRowAsColumnNamesパラメータは、最初の行を列名として使用するかどうかを決定します。 :path=/static-assets/excel-content-code-examples/how-to/export-dataset-datatable-export.cs // このコードスニペットは利用できません! ' このコードスニペットは利用できません! $vbLabelText $csharpLabel IronXLはデータセットにエクスポートする際、データ型の変換を自動的に行い、スプレッドシートの構造を維持します。 ExcelデータをSQLデータベースと統合するときや、他の.NETアプリケーションでデータを使用するときに役立ちます。 ワークブックのエクスポートとデータセットの処理を示す高度な例: using IronXL; using System; using System.Data; // Load an existing Excel file WorkBook workBook = WorkBook.Load("FinancialData.xlsx"); // Export to DataSet with column headers from first row DataSet financialDataSet = workBook.ToDataSet(useFirstRowAsColumnNames: true); // Process each DataTable in the DataSet foreach (DataTable table in financialDataSet.Tables) { Console.WriteLine($"Processing table: {table.TableName}"); Console.WriteLine($"Columns: {table.Columns.Count}, Rows: {table.Rows.Count}"); // Iterate through columns foreach (DataColumn column in table.Columns) { Console.WriteLine($" Column: {column.ColumnName} ({column.DataType})"); } // Process first 5 rows as example int rowCount = 0; foreach (DataRow row in table.Rows) { if (rowCount++ >= 5) break; // Access data by column name foreach (DataColumn col in table.Columns) { Console.WriteLine($" {col.ColumnName}: {row[col]}"); } } } // You can also export specific worksheets as DataTables WorkSheet specificSheet = workBook.WorkSheets["Q1Sales"]; DataTable q1Data = specificSheet.ToDataTable(useFirstRowAsColumnNames: true); // Use the DataTable with other .NET components // For example, bind to a DataGridView or save to database using IronXL; using System; using System.Data; // Load an existing Excel file WorkBook workBook = WorkBook.Load("FinancialData.xlsx"); // Export to DataSet with column headers from first row DataSet financialDataSet = workBook.ToDataSet(useFirstRowAsColumnNames: true); // Process each DataTable in the DataSet foreach (DataTable table in financialDataSet.Tables) { Console.WriteLine($"Processing table: {table.TableName}"); Console.WriteLine($"Columns: {table.Columns.Count}, Rows: {table.Rows.Count}"); // Iterate through columns foreach (DataColumn column in table.Columns) { Console.WriteLine($" Column: {column.ColumnName} ({column.DataType})"); } // Process first 5 rows as example int rowCount = 0; foreach (DataRow row in table.Rows) { if (rowCount++ >= 5) break; // Access data by column name foreach (DataColumn col in table.Columns) { Console.WriteLine($" {col.ColumnName}: {row[col]}"); } } } // You can also export specific worksheets as DataTables WorkSheet specificSheet = workBook.WorkSheets["Q1Sales"]; DataTable q1Data = specificSheet.ToDataTable(useFirstRowAsColumnNames: true); // Use the DataTable with other .NET components // For example, bind to a DataGridView or save to database Imports IronXL Imports System Imports System.Data ' Load an existing Excel file Dim workBook As WorkBook = WorkBook.Load("FinancialData.xlsx") ' Export to DataSet with column headers from first row Dim financialDataSet As DataSet = workBook.ToDataSet(useFirstRowAsColumnNames:=True) ' Process each DataTable in the DataSet For Each table As DataTable In financialDataSet.Tables Console.WriteLine($"Processing table: {table.TableName}") Console.WriteLine($"Columns: {table.Columns.Count}, Rows: {table.Rows.Count}") ' Iterate through columns For Each column As DataColumn In table.Columns Console.WriteLine($" Column: {column.ColumnName} ({column.DataType})") Next ' Process first 5 rows as example Dim rowCount As Integer = 0 For Each row As DataRow In table.Rows If rowCount >= 5 Then Exit For rowCount += 1 ' Access data by column name For Each col As DataColumn In table.Columns Console.WriteLine($" {col.ColumnName}: {row(col)}") Next Next Next ' You can also export specific worksheets as DataTables Dim specificSheet As WorkSheet = workBook.WorkSheets("Q1Sales") Dim q1Data As DataTable = specificSheet.ToDataTable(useFirstRowAsColumnNames:=True) ' Use the DataTable with other .NET components ' For example, bind to a DataGridView or save to database $vbLabelText $csharpLabel エクスポートされた DataSet は、Excel で定義されたリレーションシップと制約を維持するので、Excel Interop に依存せずに複雑な Excel データ構造を扱うのに最適です。 データセット/データテーブルの追加機能 IronXLはDataSetとDataTableを扱うときに高度な機能を提供します: データ型の取り扱い IronXLはExcel-DataSet変換時にデータ型をインテリジェントにマッピングします。 数値のセルは適切な数値型(int, decimal, double)に、日付のセルはDateTimeオブジェクトに、テキストのセルはstringになります。 変換前にセルのデータ形式を設定することでカスタマイズしてください。 パフォーマンス最適化 IronXLは大規模データセットのメモリ使用量と処理速度を最適化します。 このライブラリは、すべてをメモリにロードするのではなく、データを効率的にストリームします。 大量のデータを処理するエンタープライズ・アプリケーションに適しています。 他の機能との統合 DataSet/DataTable機能はIronXLの他の機能と統合されています: 数式と計算を適用してから、データセットにエクスポートします。 条件付き書式を使用して、変換前にデータを強調表示します。 チャート作成と組み合わせて、視覚的なレポートを作成します。 How to Save or Export Spreadsheets を参照して、スプレッドシートのさまざまなファイル形式へのエクスポートについて学んでください。 よくある質問 C#でExcelワークブックをDataSetに変換するにはどうすればよいですか? IronXLでは、ToDataSet()メソッドを使ってExcelワークブックをデータセットに変換することができます。WorkBook.ToDataSet(useFirstRowAsColumnNames:)を呼び出すだけで、各シートが結果のDataSetのDataTableになるワークブック全体をエクスポートできます。 プログラムによってExcelワークブックにデータセットをインポートできますか? はい、IronXLはデータセットをワークブックにインポートするためのLoadWorkSheetsFromDataSet()メソッドを提供しています。WorkBook.Create()を使用してワークブックを作成し、DataSetとワークブックの両方をこの静的メソッドに渡します。各データ・テーブルは個別のワークシートになります。 Excelにインポートすると、DataTable名はどうなりますか? IronXLのLoadWorkSheetsFromDataSet()メソッドを使用すると、各DataTable名は自動的にExcelのワークシート名になります。 このライブラリは、DataSetの変換時にカラムヘッダを保持しますか? はい、IronXLはExcelとDataSet間の変換時に列ヘッダーとデータ型を保持します。useFirstRowAsColumnNamesをtrueに設定してToDataSet()を使用すると、各ワークシートの最初の行が列ヘッダーとして認識されます。 ExcelとDataSetsの間で変換する場合、複数のテーブルはどのように扱われますか? IronXLはDataSetに変換する際、Excelの各ワークシートを対応するDataTableに自動的にマッピングします。複数のテーブルを持つDataSetをインポートする場合、各DataTableはワークブック内に個別のワークシートを作成します。 ExcelをDataSetにエクスポートするために必要な最小限のコードは何ですか? IronXLを使ってExcelワークブックをDataSetにエクスポートする最小のコードはたった1行です:DataSet ds = WorkBook.Create().ToDataSet(useFirstRowAsColumnNames: true); これでワークブック全体がシートからテーブルへの自動マッピングで変換されます。 カーティス・チャウ 今すぐエンジニアリングチームとチャット テクニカルライター Curtis Chauは、カールトン大学でコンピュータサイエンスの学士号を取得し、Node.js、TypeScript、JavaScript、およびReactに精通したフロントエンド開発を専門としています。直感的で美しいユーザーインターフェースを作成することに情熱を持ち、Curtisは現代のフレームワークを用いた開発や、構造の良い視覚的に魅力的なマニュアルの作成を楽しんでいます。開発以外にも、CurtisはIoT(Internet of Things)への強い関心を持ち、ハードウェアとソフトウェアの統合方法を模索しています。余暇には、ゲームをしたりDiscordボットを作成したりして、技術に対する愛情と創造性を組み合わせています。 準備はできましたか? Nuget ダウンロード 1,846,091 | バージョン: 2026.2 リリース NuGet 無料版 総ダウンロード数: 1,846,091 ライセンスを見る