C#を使用してExcelファイルのデータを読み取る

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ファイルのワークシートのデータを読み取る

C#でExcelファイルを読み取る

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の他の機能を調べることができます。ご不明な点がございましたら、フォーラムまでお気軽にお問い合わせください。

関連項目