金魚すくいのポイで、Excelファイルを開いてみます。
便利な世の中になりましたねぇ。
Apache POIの入手
まずは、「Apache POI」ライブラリを入手しましょう。
Apache POIは、Apacheが公開しているライブラリですので、安心してくださいw
集めるのは大変なので、Mavenを使っての入手をおすすめします。
Apache Mavenを使って入手
pom.xmlは、こんな感じです。
1 2 3 4 5 6 7 8 9 10 11 12 | <!-- https://mvnrepository.com/artifact/org.apache.poi/poi --> <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi</artifactId> <version>5.2.3</version> </dependency> <!-- https://mvnrepository.com/artifact/org.apache.poi/poi-ooxml --> <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi-ooxml</artifactId> <version>5.2.3</version> </dependency> |
Apache Mavenから手動で入手
手動でがんばるなら、以下のjarを集めることになります。。大変です。おすすめしませんw
Mavenリポジトリでダウンロードできるので、ここで探して集めましょう。
https://mvnrepository.com/
- commons-codec-1.15.jar
- commons-collections4-4.4.jar
- commons-compress-1.21.jar
- commons-io-2.11.0.jar
- commons-math3-3.6.1.jar
- curvesapi-1.07.jar
- log4j-api-2.18.0.jar
- poi-5.2.3.jar
- poi-ooxml-5.2.3.jar
- poi-ooxml-lite-5.2.3.jar
- SparseBitSet-1.2.jar
- xmlbeans-5.1.1.jar
※2023年4月時点でMavenから拾ったリストです。
バージョンの整合性もあるので、手動はおすすめしません。
大事なことなので、2回言いましたw
Apache POIを使って、Excelファイルを読み込むサンプル
エクセルファイルを読んで、シート1枚目の内容を標準出力します。
エクセルファイルのシート1枚目に、都道府県コードの一覧(5件分)を書いてあります。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 | import java.io.File; import java.io.FileInputStream; import org.apache.poi.ss.usermodel.Cell; import org.apache.poi.ss.usermodel.Row; import org.apache.poi.ss.usermodel.Sheet; import org.apache.poi.ss.usermodel.Workbook; import org.apache.poi.ss.usermodel.WorkbookFactory; public class ExelFileReadTest { public static void main(String[] args) { try { //Excelを開く File file = new File("C:\\work\\test.xlsx"); try(FileInputStream inputStream = new FileInputStream(file); Workbook workbook = WorkbookFactory.create(inputStream)){ //シート1枚目を開く Sheet sheet = workbook.getSheetAt(0); for (Row row : sheet) { for (Cell cell : row) { //セル System.out.print(cell.getStringCellValue() + "\t"); } System.out.println(); } } } catch (Exception e) { e.printStackTrace(); } } } |
実行結果
エクセルファイルに書かれている都道府県コードの一覧(5件分)が出力されます。
ついでに、log4j-coreが足りない旨出力されます。
1 2 3 4 5 6 7 | ERROR StatusLogger Log4j2 could not find a logging implementation. Please add log4j-core to the classpath. Using SimpleLogger to log to the console... コード 名称 01 北海道 02 青森県 03 岩手県 04 宮城県 05 秋田県 |
エラーが気になるようでしたら、log4jを設定しましょう。
サンプルの解説
WorkbookFactory#create(InputStream)にエクセルファイルのインプットストリームを渡すと、Workbookが返ってきます。
Workbookから行のRow。行のRowからセルのCellが取得できます。
この例では、Cell#getStringCellValue()でセルの値を取得しています。