MS Excelスプレッドシートは、小、中、または大サイズのデータを保持するために広く使用されています。さまざまな場合、スプレッドシートはアプリケーションデータを保存するためのデータベースとして機能します。このような状況では、Webまたはデスクトップアプリケーション内からExcelファイルに保存されているデータを読み取る必要がある場合があります。このような場合、この記事では、ExcelデータをC#でDataTablesに変換する方法について説明します。

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にエクスポートできます。

次のコードサンプルは、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にエクスポートする手順は次のとおりです。

次のコードサンプルは、強く型付けされていないデータを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の詳細を調べることができます。

関連項目