MS Excelファイルは、行と列の形式でデータを格納するために広く使用されています。さまざまな場合、大きなデータセットもExcelファイルで維持されます。多くの場合、Excelファイルを読み取り、.NETアプリケーション内からデータをフェッチする必要があります。いくつかの簡単な手順でこれを実現するために、この記事ではC#でExcelファイルを読み取る方法を示します。特に、Excelファイル全体またはそこから1つのワークシートのみを読み取る方法について説明します。
Excelファイルを読み取るためのC#ライブラリ
ワークシートからデータを読み取るには、Aspose.Cells for .NETを使用します。これは、Excelファイルを作成および操作するための強力で機能豊富なAPIです。さらに、Excelファイルを非常に簡単に読み取ることができます。 APIは、ダウンロードセクションからダウンロードするか、NuGetからインストールできます。
PM> Install-Package Aspose.Cells
C#でExcelファイルを読む
Excelファイルでは、データはセル内に保存され、各セルはその名前(A1、B3など)または行と列のインデックスで識別されます。セルのコレクションはワークシートを作成し、Excelファイルには単一または複数のワークシートが含まれる場合があります。最後に、すべてのワークシートが集合的にワークブックを形成します。 Aspose.Cells for .NETは、同じ命名規則を使用してExcelファイルを操作します。
以下は、Excelファイルを読み取り、C#を使用してそのデータを印刷する手順です。
- Workbookクラスを使用してExcelファイルをロードします。
- WorksheetCollectionクラスのオブジェクトを作成し、Workbook.Worksheetsを使用してワークシートの参照を取得します。
- ループを開始して、コレクション内のすべてのワークシートを調べ、各反復で次の手順を実行します。
- Worksheetオブジェクトでワークシートの参照を取得します。
- ワークシートのデータの行と列の数を取得します。
- 行のループを開始します。
- 列のネストされたループを開始します。
- Worksheet.Cells[i, j].Valueプロパティを使用して各セルからデータを読み取ります。
次のコードサンプルは、C#でExcelファイルを読み取る方法を示しています。
// Excelファイルをロードします
Workbook wb = new Workbook("excel.xlsx");
// すべてのワークシートを取得する
WorksheetCollection collection = wb.Worksheets;
// すべてのワークシートをループします
for (int worksheetIndex = 0; worksheetIndex < collection.Count; worksheetIndex++)
{
// インデックスを使用してワークシートを取得する
Worksheet worksheet = collection[worksheetIndex];
// ワークシート名を印刷する
Console.WriteLine("Worksheet: " + worksheet.Name);
// 行と列の数を取得する
int rows = worksheet.Cells.MaxDataRow;
int cols = worksheet.Cells.MaxDataColumn;
// 行をループする
for (int i = 0; i < rows; i++)
{
// 選択した行の各列をループします
for (int j = 0; j < cols; j++)
{
// プリンセル値
Console.Write(worksheet.Cells[i, j].Value + " | ");
}
// 改行を印刷する
Console.WriteLine(" ");
}
}
以下は、上記のコードサンプルを実行した後にコンソールに表示される出力です。
C#でExcelの特定のワークシートを読む
以下の手順に従って、Excelファイル内の特定のワークシートのみを読み取ることもできます。
- Workbookクラスを使用してExcelファイルをロードします。
- Workbook.Worksheets [index]を使用して、Worksheetオブジェクト内の目的のワークシートの参照を取得します。
- ワークシートのデータの行と列の数を取得します。
- 行のループを開始します。
- 列のネストされたループを開始します。
- Worksheet.Cells[i, j].Valueプロパティを使用して、各セルからデータを読み取ります。
次のコードサンプルは、C#で特定のワークシートからデータを読み取る方法を示しています。
// Excelファイルをロードします
Workbook wb = new Workbook("excel.xlsx");
// インデックスを使用してワークシートを取得する
Worksheet worksheet = wb.Worksheets[0];
// ワークシート名を印刷する
Console.WriteLine("Worksheet: " + worksheet.Name);
// 行と列の数を取得する
int rows = worksheet.Cells.MaxDataRow;
int cols = worksheet.Cells.MaxDataColumn;
// 行をループする
for (int i = 0; i < rows; i++)
{
// 選択した行の各列をループします
for (int j = 0; j < cols; j++)
{
// プリンセル値
Console.Write(worksheet.Cells[i, j].Value + " | ");
}
// 改行を印刷する
Console.WriteLine(" ");
}
無料のAPIライセンスを取得する
無料の一時ライセンスを取得することで、評価の制限なしにAspose.Cells for .NETを使用できます。
結論
この記事では、C#でExcelファイルを動的に読み取る方法を学習しました。コードサンプルの助けを借りて、Excelワークブックの特定のワークシートまたはすべてのワークシートからデータを読み取る方法を見てきました。さらに、ドキュメントを使用して、Aspose.Cells for .NETの他の機能を調べることができます。ご不明な点がございましたら、フォーラムまでお気軽にお問い合わせください。