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
です。
HSSF
-HSSF
、恐ろしいスプレッド シート形式、実装は、以前のバージョンの Microsoft Excel、具体的には Excel 2003 以前で機能する API を持つユーザーを示します。XSSF
-XSSF
、XML スプレッドシート形式、実装は、Microsoft Excel の新しいバージョンで動作する API を持つユーザーを示します。 この場合、Excel 2007+ バージョン用です。 この実装を使用して、.xlsx
形式を操作することもできます。
その働きをさらに理解するために、そのインターフェースとクラスを調べてみましょう。
インターフェイスとクラス
以下で説明するすべてのインターフェースは、HSSF
と XSSF
の両方で機能することに注意してください。
-
workbook
-workbook
は、Excel Workbook を表すインターフェイスです。HSSFWorkbook
とXSSFWorkbook
の 2つのクラスがあります。 -
シート
- ご存じのとおり、ワークブックの中心的な構造はワークシートとして知られています。 したがって、sheet
は Excel ワークシートを表すインターフェイスです。ライブラリ
java.lang.Iterable
の拡張です。 このインターフェイスの 2つのクラスは、HSSFSheet
とXSSFSheet
です。 -
row
- Excel シートのrow
を表すインターフェイスです。 このインターフェースは、ライブラリjava.lang.Iterable
の拡張でもあります。HSSFRow
とXSSFRow
の 2つのクラスがあります。 -
セル
- Excel シートの行
のセルを表すインターフェイスです。 また、HSSFCell
とXSSFCell
という 2つのクラスがあります。
ライブラリAPACHE POI
に含まれるものと、使用できるインターフェイスとクラスがわかったので、Excelファイルを読み取る手順を見てみましょう。
Java で Excel ファイルを読み取る手順
これらの手順は簡単に実行できます。
-
lib
フォルダーを作成するユーザーが Excel ファイルを開いて読み取るために使用する Java プロジェクトに、
lib
という名前のフォルダーを作成します。 -
jar
ファイルをダウンロードこの手順では、前の手順で作成した
lib
フォルダーにいくつかのjar
ファイルをダウンロードする必要があります。commons-collections4-4.1.jar
、poi-3.17.jar
、poi-ooxml-3.17.jar
、poi-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 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