MS Excelスプレッドシートは、小、中、または大サイズのデータを保持するために広く使用されています。さまざまな場合、スプレッドシートはアプリケーションデータを保存するためのデータベースとして機能します。このような状況では、Webまたはデスクトップアプリケーション内からExcelファイルに保存されているデータを読み取る必要がある場合があります。このような場合、この記事では、ExcelデータをC#でDataTablesに変換する方法について説明します。
- ExcelデータをDataTableにエクスポートするC#API
- ExcelからC#のDataTableへ
- 強い型のExcelデータをDataTableに変換する
- 強く型付けされていないExcelデータをDataTableに変換する
- 無料ライセンスを取得する
C#ExcelからDataTableへの変換API
Aspose.Cells for .NETは、.NETアプリケーション内にExcel自動化機能を実装できるようにするクラスライブラリです。さらに、APIを使用すると、数ステップでExcelワークシートからADO.NETDataTableにデータをエクスポートできます。 APIをダウンロードするか、NuGetからインストールできます。
PM> Install-Package Aspose.Cells
ExcelをC#でDataTableに変換する
ExcelワークシートからDataTablesにデータをエクスポートする場合、2つのシナリオが考えられます。データは強く型付けされる場合と強く型付けされない場合があります。どちらの場合も、それに応じてExcelからDataTableへの変換を実行できます。上記のシナリオのいずれかに対処する方法を見てみましょう。
強い型のExcelデータをC#でDataTableに変換する
強く型付けされたデータとは、単一の列の値が特定のデータ型に属することを意味します。このような場合、次の手順を使用して、ExcelデータをC#のDataTableにエクスポートできます。
- Workbookクラスを使用してExcelファイルをロードします。
- エクスポートするワークシートをWorksheetオブジェクトで取得します。
- Worksheet.Cells.ExportDataTable(int, int, int, int, bool)メソッドを使用して、データをDataTableオブジェクトにエクスポートします。
- DataTableをデータソースとして使用します。
次のコードサンプルは、ExcelをDataTableにエクスポートする方法を示しています。
// 開くExcelファイルを含むファイルストリームを作成します
FileStream fstream = new FileStream("Excel.xlsx", FileMode.Open);
// Workbookオブジェクトをインスタンス化します
//ファイルストリームを介してExcelファイルを開く
Workbook workbook = new Workbook(fstream);
// Excelファイルの最初のワークシートにアクセスします
Worksheet worksheet = workbook.Worksheets[0];
// 最初のセルから始まる2行2列のコンテンツをDataTableにエクスポートします
DataTable dataTable = worksheet.Cells.ExportDataTable(0, 0,2, 2, true);
// DataTableをDataGridでバインドする
dataGridView1.DataSource = dataTable;
// ファイルストリームを閉じて、すべてのリソースを解放します
fstream.Close();
強く型付けされていないExcelデータをC#でDataTableに変換する
ここで、ワークシートの値が強く型付けされていない他のケースを見てみましょう。これは、それらが特定のデータ型に属していないことを意味します。この場合、ExcelデータをDataTableにエクスポートする手順は次のとおりです。
- Workbookクラスを使用してExcelファイルをロードします。
- Worksheetオブジェクトでエクスポートするワークシートを選択します。
- Worksheet.Cells.ExportDataTableAsString(int, int, int, int, bool)メソッドを使用して、データをDataTableオブジェクトにエクスポートします。
- DataTableをデータソースとして使用します。
次のコードサンプルは、強く型付けされていないデータをExcelからC#のDataTableにエクスポートする方法を示しています。
// 開くExcelファイルを含むファイルストリームを作成します
FileStream fstream = new FileStream("Excel.xlsx", FileMode.Open);
// Workbookオブジェクトをインスタンス化します
//ファイルストリームを介してExcelファイルを開く
Workbook workbook = new Workbook(fstream);
// Excelファイルの最初のワークシートにアクセスします
Worksheet worksheet = workbook.Worksheets[0];
// 最初のセルから始まる2行2列のコンテンツをDataTableにエクスポートします
DataTable dataTable = worksheet.Cells.ExportDataTableAsString(0, 0, 2, 2, true);
// DataTableをDataGridでバインドする
dataGridView1.DataSource = dataTable;
// ファイルストリームを閉じて、すべてのリソースを解放します
fstream.Close();
無料ライセンスを取得する
評価の制限なしにAPIを試すために、無料の一時ライセンスを取得できます。
結論
この記事では、C#を使用してExcelデータをADO.NETDataTablesにエクスポートまたは変換する方法を学習しました。ステップバイステップのチュートリアルとコードサンプルは、ワークシートで強く型付けされたデータと強く型付けされていないデータを処理する方法を示しています。 ドキュメントを使用して、C#ExcelAPIの詳細を調べることができます。