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

Haider Ali 2023年10月12日
  1. Java で Excel ファイルを読み取る
  2. APACHE POI ライブラリの概要
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 ファイル データになります。

著者: Haider Ali
Haider Ali avatar Haider Ali avatar

Haider specializes in technical writing. He has a solid background in computer science that allows him to create engaging, original, and compelling technical tutorials. In his free time, he enjoys adding new skills to his repertoire and watching Netflix.

LinkedIn

関連記事 - Java Excel