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

MS Excelファイルは、主に表形式のデータをワークシートの形式で保持するために使用されます。多くの場合、巨大なデータセットはExcelファイルでも維持されます。したがって、Excelファイルのワークシートからデータを読み取ってフェッチする必要があるシナリオに遭遇する可能性があります。これを実現するために、この記事ではJavaでExcelファイルを読み取る方法を示します。プログラムでExcelファイル全体または1つのワークシートのみを読み取る方法を示します。

Excelファイルを読み取るためのJavaライブラリ

ワークシートからデータを読み取るには、Aspose.Cells for Javaを使用します。 Excelファイルを一から作成するスプレッドシート操作APIです。さらに、既存のExcelファイルを非常に簡単に読み取って操作することができます。 APIは、ダウンロードセクションからダウンロードするか、pom.xmlに次のMaven構成を追加してインストールできます。

<repository>
    <id>AsposeJavaAPI</id>
    <name>Aspose Java API</name>
    <url>https://repository.aspose.com/repo/</url>
</repository>
<dependency>
    <groupId>com.aspose</groupId>
    <artifactId>aspose-cells</artifactId>
    <version>21.11</version>
</dependency>

JavaでExcelファイルを読む

Excelファイルでは、データはセルに保存され、各セルはその名前(A1、B3など)または行と列のインデックスで識別されます。これらのセルは集合的にワークシートを形成し、Excelファイルは単一または複数のワークシートで構成されます。すべてのワークシートはワークブックに含まれています。これは、Excelファイルの構造の概要です。次に、Excelファイルからデータを読み取ります。

以下は、Javaを使用してExcelファイルを読み取り、そのデータを印刷する手順です。

  • Workbookクラスを使用してExcelファイルをロードします。
  • WorksheetCollectionクラスのオブジェクトを作成し、Workbook.getWorksheets()メソッドを使用してワークシートの参照を取得します。
  • ループを開始して、コレクション内のすべてのワークシートを調べ、各反復で次の手順を実行します。
    • Worksheetオブジェクトでワークシートの参照を取得します。
    • ワークシートのデータの行と列の数を取得します。
    • 行のループを開始します。
    • 列のネストされたループを開始します。
    • Worksheet.getCells().get(rowIndex, columnIndex).getValue()メソッドを使用して各セルからデータを読み取ります。

次のコードサンプルは、JavaでExcelファイルを読み取る方法を示しています。

// Excelファイルをロードします
Workbook wb = new Workbook("workbook.xlsx");

// すべてのワークシートを取得する
WorksheetCollection collection = wb.getWorksheets();

// すべてのワークシートをループします
for (int worksheetIndex = 0; worksheetIndex < collection.getCount(); worksheetIndex++) {

  // インデックスを使用してワークシートを取得する
  Worksheet worksheet = collection.get(worksheetIndex);

  // ワークシート名を印刷する
  System.out.print("Worksheet: " + worksheet.getName());

  // 行と列の数を取得する
  int rows = worksheet.getCells().getMaxDataRow();
  int cols = worksheet.getCells().getMaxDataColumn();

  // 行をループする
  for (int i = 0; i < rows; i++) {

    // 選択した行の各列をループします
    for (int j = 0; j < cols; j++) {
        // プリンセル値
	System.out.print(worksheet.getCells().get(i, j).getValue() + " | ");
    }
    // 改行を印刷する
    System.out.println(" ");
  }
}

以下は、上記のコードサンプルを実行した後にコンソールに表示される出力です。

JavaでExcelファイルのワークシートのデータを読み取る

JavaでExcelファイルを読む

JavaのExcelで特定のワークシートを読む

以下の手順に従って、Excelファイル内の特定のワークシートのみを読み取ることもできます。

次のコードサンプルは、Javaで特定のワークシートからデータを読み取る方法を示しています。

// Excelファイルをロードします
Workbook wb = new Workbook("workbook.xlsx");

// ワークシートの参照を取得する
Worksheet worksheet = wb.getWorksheets().get(0);

// 行と列の数を取得する
int rows = worksheet.getCells().getMaxDataRow();
int cols = worksheet.getCells().getMaxDataColumn();

// 行をループする
for (int i = 0; i < rows; i++) {

  // 選択した行の各列をループします
  for (int j = 0; j < cols; j++) {

    // セル値を出力
    System.out.print(worksheet.getCells().get(i, j).getValue() + " | ");

  }
  // 改行を印刷する
  System.out.println(" ");
}

無料のAPIライセンスを取得する

無料の一時ライセンスを取得することで、評価の制限なしにAspose.Cells for Javaを使用できます。

結論

この記事では、JavaでExcelファイルを動的に読み取る方法を学習しました。コードサンプルの助けを借りて、Excelワークブックの特定のワークシートまたはすべてのワークシートからデータを読み取る方法を見てきました。さらに、ドキュメントを使用して、Aspose.Cells for Javaの他の機能を調べることができます。ご不明な点がございましたら、フォーラムからお気軽にお問い合わせください。

関連項目