C#でDataTableをインポートおよびエクスポートする方法
IronXLは、ExcelワークブックとDataSetとしてエクスポートします。シートからテーブルへのマッピングは自動で行われます。
DataSetは、複数の関連テーブル、関係、および制約を含むデータのメモリ内表現です。 データベース、XML、その他のソースからのデータを扱うために使用されます。 C#のExcelファイルを扱う際、DataSetはデータ駆動型アプリケーションと統合された馴染みのある.NET構造を提供します。
DataSet内の行と列を持つ単一のテーブルを表します。 IronXLは各Excelワークシートを対応するDataTableに自動的にマッピングし、変換中に列ヘッダとデータ型を保持します。
System.Data.DataSetとして即座にエクスポート@@--AH2EG--@@
ワークブックをDataSetに変換するのに、一つのメソッド呼び出しが必要です。 この例では、オプションで最初の行のヘッダー認識を行いながら、ToDataSetを用いてエクスポートします。
-
1Install IronXL with NuGet Package Manager
-
2このコード スニペットをコピーして実行します。
DataSet ds = WorkBook.Create().ToDataSet(useFirstRowAsColumnNames: true);C# -
3実際の環境でテストするためにデプロイする
今日プロジェクトで IronXL を使い始めましょう無料トライアル
最小限のワークフロー(5ステップ)
- DataSet としてインポートおよびエクスポートするための C# ライブラリをダウンロードします。
- スプレッドシートオブジェクトにインポートする
DataSetを準備する。 - ワークブックに
DataSetをインポートするには、LoadWorkSheetsFromDataSetメソッドを使用します。 - ワークブックを
DataSetとしてエクスポートするには、ToDataSetメソッドを使用します。 - 変換結果を確認する
DataSetをワークブックに読み込む方法
静的なDataSetをワークブックにインポートします。 このメソッドにはWorkbookオブジェクトが必要です。 また、DataSetを用いたオプション設定も受け入れます。 まずCreateメソッドを使用してワークブックを作成します。 workbookオブジェクトをメソッドに渡します。
using IronXL;
using System.Data;
// Create dataset
DataSet dataSet = new DataSet();
// Create workbook
WorkBook workBook = WorkBook.Create();
// Load DataSet to workBook
WorkBook.LoadWorkSheetsFromDataSet(dataSet, workBook);Imports IronXL
Imports System.Data
' Create dataset
Private dataSet As New DataSet()
' Create workbook
Private workBook As WorkBook = WorkBook.Create()
' Load DataSet to workBook
WorkBook.LoadWorkSheetsFromDataSet(dataSet, workBook)DataSet内で個別のワークシートになります。 テーブル名はワークシート名となり、データ構成を維持します。 複数のデータソースについては、新しいスプレッドシートの作成または既存のワークシートの管理と組み合わせてください。
ここでは、複数のテーブルを含むDataSetを読み込む包括的な例を示します。
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")このアプローチは、SQLデータベースからデータをエクスポートするときや、複数のソースからExcel形式にデータを統合するときに効果的です。
さまざまなファイル形式からのスプレッドシートのインポートについては、既存のスプレッドシートの読み込み方法をご覧ください。
ワークブックをDataSetとしてエクスポートする方法
System.Data.DataTableになります。 Excelワークブックに対してこのメソッドを呼び出し、DataSetオブジェクトに変換します。 useFirstRowAsColumnNamesパラメーターは、最初の行を列名として使用するかどうかを決定します。
// source file not found: /static-assets/excel-content-code-examples/how-to/export-dataset-datatable-export.cs
IronXLはデータセットにエクスポートする際、データ型の変換を自動的に行い、スプレッドシートの構造を維持します。 ExcelデータをSQLデータベースと統合するときや、他 for .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.GetWorkSheet("Q1Sales");
DataTable q1Data = specificSheet.ToDataTable(useFirstRowAsColumnNames: true);
// Use the DataTable with other .NET components
// For example, bind to a DataGridView or save to database
エクスポートされたDataSetは、Excelで定義された関係と制約を維持し、Excel Interopの依存関係なしで複雑なExcelデータ構造を扱うのに最適です。
データセット/データテーブルの追加機能
IronXLはDataTableを扱う際に高度な機能を提供します:
データ型の取り扱い
IronXLはExcel-DataSet変換時にデータ型をインテリジェントにマッピングします。 数値セルは適切な数値型(Stringになります。 変換前にセルのデータ形式を設定することでカスタマイズしてください。
パフォーマンス最適化
IronXLは大規模データセットのメモリ使用量と処理速度を最適化します。 このライブラリは、すべてをメモリにロードするのではなく、データを効率的にストリームします。 大量のデータを処理するエンタープライズ・アプリケーションに適しています。
他の機能との統合
DataSet/DataTable機能はIronXLの他の機能と統合されています:
DataSetにエクスポートする前に数式と計算を適用- 条件付き書式を使用して、変換前にデータを強調表示します。
- チャート作成と組み合わせて、視覚的なレポートを作成します。
intを使用したカスタムシリアル化をサポートdecimalを介してデータ検証ルールを含めるdoubleで欠損値を扱うDateTimeを通じてワークシートのメタデータを管理するstringを使用してセルフォーマットタイプを保持する
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); これでワークブック全体がシートからテーブルへの自動マッピングで変換されます。
What performance optimizations does IronXL include for handling large datasets?
IronXL is optimized for high performance, using efficient streaming techniques to manage memory and speed when working with large data volumes, making it suitable for enterprise-level applications.
How does IronXL maintain data structure when converting a workbook to a DataSet?
IronXL maintains the organizational structure by converting each worksheet to a DataTable. The relationships, constraints, column headers, and data types are preserved during conversion, allowing for complex data interactions.
Can I use IronXL to create visual reports using Excel data?
Yes, IronXL supports creating charts and visual reports by integrating its DataSet/DataTable functionality with its chart creation features, allowing for comprehensive data visualization directly from Excel data.
Does IronXL support the integration of custom serialization in DataSet operations?
IronXL allows for custom serialization, which can enhance DataSet and DataTable manipulation according to specific application requirements, providing greater flexibility in handling serialized data.

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