HOWTO · Java

Java で Excel ファイルを読み取る

この記事では、Java で Excel ファイルを読み取る方法を示します。

このページの内容

この記事では、Java プログラムで Excel ファイルを読み取るために必要な情報を教育します。 どのソフトウェアを使用しますか? 従うべき手順と、最後に重要なこととして、ユーザーが Excel ファイルを読み取れるようにライブラリを適用する方法。 それでは始めましょう。

Java で Excel ファイルを読み取る

Java では、Microsoft Word などの他のファイル形式と同様に、Excel ファイルを読み取るのは簡単ではありません。 ただし、Excelシートにはセルが含まれているため、その理由は簡単に理解できます。

JDK (Java Development Kit) では、ユーザーは Microsoft Excel や Microsoft Word などのファイルを処理できません。 さらに、ユーザーに必要な API を提供しないため、サードパーティのライブラリに依存してタスクを実行するしかありません。

Java で Excel ファイルを読み取るには、.xls.xlsx の両方の形式で機能するため、ライブラリ APACHE POI について学習する必要があります。

APACHE POI ライブラリの概要

Poor Obfuscation Implementation としても知られるライブラリ APACHE POI は、ユーザーに 2つの実装を提供します。 1つは HSSF で、もう 1つは XSSF です。

  1. HSSF - HSSF、恐ろしいスプレッド シート形式、実装は、以前のバージョンの Microsoft Excel、具体的には Excel 2003 以前で機能する API を持つユーザーを示します。
  2. XSSF - XSSF、XML スプレッドシート形式、実装は、Microsoft Excel の新しいバージョンで動作する API を持つユーザーを示します。 この場合、Excel 2007+ バージョン用です。 この実装を使用して、.xlsx 形式を操作することもできます。

その働きをさらに理解するために、そのインターフェースとクラスを調べてみましょう。

インターフェイスとクラス

以下で説明するすべてのインターフェースは、HSSFXSSF の両方で機能することに注意してください。

  1. workbook - workbook は、Excel Workbook を表すインターフェイスです。 HSSFWorkbookXSSFWorkbook の 2つのクラスがあります。

  2. シート - ご存じのとおり、ワークブックの中心的な構造はワークシートとして知られています。 したがって、sheet は Excel ワークシートを表すインターフェイスです。

    ライブラリ java.lang.Iterable の拡張です。 このインターフェイスの 2つのクラスは、HSSFSheetXSSFSheet です。

  3. row - Excel シートの row を表すインターフェイスです。 このインターフェースは、ライブラリ java.lang.Iterable の拡張でもあります。 HSSFRowXSSFRow の 2つのクラスがあります。

  4. セル - Excel シートの のセルを表すインターフェイスです。 また、HSSFCellXSSFCell という 2つのクラスがあります。

ライブラリAPACHE POIに含まれるものと、使用できるインターフェイスとクラスがわかったので、Excelファイルを読み取る手順を見てみましょう。

Java で Excel ファイルを読み取る手順

これらの手順は簡単に実行できます。

  • lib フォルダーを作成する

    ユーザーが Excel ファイルを開いて読み取るために使用する Java プロジェクトに、lib という名前のフォルダーを作成します。

  • jarファイルをダウンロード

    この手順では、前の手順で作成した lib フォルダーにいくつかの jar ファイルをダウンロードする必要があります。 commons-collections4-4.1.jarpoi-3.17.jarpoi-ooxml-3.17.jarpoi-ooxml-schemas-3.17.jar をダウンロードする必要があります。 ] および xmlbeans-2.6.0.jar

  • jar ファイルを追加するためのパスを作成します

    このステップでは、前のステップでダウンロードしたjarファイルを追加するためのパスを作成する必要があります。 これを行うには、手順 1 で作成した Java プロジェクトを右クリックします。

    次に、build path オプションをクリックして、jar ファイルの path を作成します。 最後に、外部のjarファイルを追加した後、適用して閉じるをクリックします。

  • Java クラスを作成する

    このステップで Java クラス ファイルを作成すると、目的の Excel ファイルを呼び出してデータを読み取ることができます。 以下は、Excel ファイルを読み取るクラス ファイルの例です。

    Excel 2007 以降のバージョンを使用するため、この例では XSSF を使用します。

    import java.io.File;
    import java.io.FileInputStream;
    import java.util.Iterator;
    import org.apache.poi.ss.usermodel.Cell;
    import org.apache.poi.ss.usermodel.Row;
    import org.apache.poi.xssf.usermodel.XSSFSheet;
    import org.apache.poi.xssf.usermodel.XSSFWorkbook;
    
    public class Example {
      public static void main(String[] args) {
        try {
          File ExcelFile = new File("D:\\your_filename.xlsx");
          // obtaining bytes from the file
          FileInputStream FileStream = new FileInputStream(ExcelFile);
          // using the Workbook interface
          XSSFWorkbook ExcelWorkbook = new XSSFWorkbook(FileStream);
    
          // using the sheet class to get the object
          XSSFSheet ExcelSheet = ExcelWorkbook.getSheetAt(0);
          // iterating over excel file, rows.
          Iterator<Row> IterateRows = ExcelSheet.iterator();
          while (IterateRows.hasNext()) {
            Row ExcelRow = IterateRows.next();
    
            // iterating over the column
            Iterator<Cell> IterateCells = ExcelRow.cellIterator();
    
            while (IterateCells.hasNext()) {
              Cell ExcelCell = IterateCells.next();
    
              switch (ExcelCell.getCellType()) {
                case Cell.CELL_TYPE_STRING: // represents string cell type
                  System.out.print(ExcelCell.getStringCellValue() + "\t");
                  break;
                case Cell.CELL_TYPE_NUMERIC: // represents number cell type
                  System.out.print(ExcelCell.getNumericCellValue() + "\t");
                  break;
                default:
              }
            }
            System.out.println("");
          }
        } catch (Exception exp) {
          exp.printStackTrace();
        }
      }
    }
    

このサンプル コードを使用すると、ライブラリ APACHE POI の使用方法を簡単に理解できます。 このコード例の出力は、ユーザーが提供する Excel ファイル データになります。