【Java】Eclipse環境でjavaからExcelを読み書きする方法ApachePOIを用いて実現
手順
- ApachePOIのダウンロード
- ApachePOIライブラリを展開
- Ecllipseのjavaプロジェクトでビルド・パス構成でjarファイルを追加
- ソースコード実装・・・完了
という流れになります。
ApachePOIのダウンロード
まずは、ApacheのサイトからPOIをダウンロードします。
「Binary Distribution」のpoi-bin-4.1.2-20200217.zipをクリックしてダウンロードします。

ダウンロードして保存する先は任意です。

ApachePOI.zipの解凍展開
zipファイルをこんどは解凍し展開します。
展開先は任意です。

EclipseのJavaプロジェクトでビルド・パス構成設定
EclipseのJavaプロジェクトでビルド・パスの構成を開く

ライブラリータブを開き、右側にある外部JARの追加ボタンをクリックします。

先ほど解凍し展開したフォルダ階層内のpoi-4.1.2 >

赤枠のjarファイル追加。
さらに、libフォルダ内の

赤枠内の「commons-***」Jarファイルも追加
さらに、ooxml-libフォルダ内の

赤枠内の「curvesapi-1.06.jar」「xmlbeans-3.1.0.jar」jarファイルを追加します。
jarファイルが追加できたら、

適用して完了です。
追加したJarファイル
/poi-4.1.2.jar/poi-examples-4.1.2.jar/poi-excelant-4.1.2.jar/poi-ooxml-4.1.2.jar/poi-ooxml-schemas-4.1.2.jar/poi-scratchpad-4.1.2.jar/lib/commons-codec-1.13.jar/lib/commons-collections4-4.4.jar/lib/commons-compress-1.19.jar/lib/commons-logging-1.2.jar/lib/commons-math3-3.6.1.jar/ooxml-lib/curvesapi-1.06.jar/ooxml-lib/xmlbeans-3.1.0.jar
どれが必要か不要なのか詳しくないので、適当に追加してみました。
Excelファイルを出力
jarファイルも追加できたら、あとはExcelを操作する方法ですね。
簡単な書き込み処理を書いたソースコード
package poi_excel; import java.io.FileOutputStream; import java.io.IOException; 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.xssf.usermodel.XSSFWorkbook; public class main { public static void main(String[] args) { XSSFWorkbook workbook = new XSSFWorkbook(); Sheet sheet = workbook.createSheet("test"); Row row0 = sheet.createRow(0); Row row1 = sheet.createRow(1); Row row2 = sheet.createRow(2); Cell cell0 = row0.createCell(0); Cell cell1 = row1.createCell(1); Cell cell2 = row2.createCell(2); cell0.setCellValue("Excelを出力してみた"); cell1.setCellValue(100 / 3.14); cell2.setCellValue(12345.9876); FileOutputStream output = null; try{ output = new FileOutputStream("sampleExcelout.xlsx"); workbook.write(output); System.out.println("完了。。"); }catch(IOException e){ System.out.println(e.toString()); }finally{ try { if (output != null) { output.close(); } if (workbook != null) { workbook.close(); } }catch(IOException e){ System.out.println(e.toString()); } } } }
実行結果

文字列、計算式の結果、数値が書き込まれて出力できました!!!
Excel読み込み
Excelを用意する。

セル”C3″、”E2″、”F5″、”A1″の値を取得するコードを書いてみる。
package poi_excel; import java.io.IOException; 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.xssf.usermodel.XSSFWorkbook; public class main { public static void main(String[] args) { String excelread = "sampleExcelread.xlsx"; XSSFWorkbook workbook = null; try{ workbook = new XSSFWorkbook(excelread); //左端のシートを取得する Sheet sheet = workbook.getSheetAt(0); //取得する値のセル設定 Row row0 = sheet.getRow(2); //3行目 Row row1 = sheet.getRow(1); //2行目 Row row2 = sheet.getRow(4); //5行目 Row row3 = sheet.getRow(0); //1行目 Cell cell0 = row0.getCell(2); //C列 Cell cell1 = row1.getCell(4); //E列 Cell cell2 = row2.getCell(5); //F列 Cell cell3 = row3.getCell(0); //A列 //取得した値をコンソールに出力する System.out.println(cell0.getNumericCellValue()); System.out.println(cell1.getStringCellValue()); System.out.println(cell2.getNumericCellValue()); System.out.println(cell3.getStringCellValue()); System.out.println("完了。。"); }catch(IOException e){ System.out.println(e.toString()); }finally{ try { if (workbook != null) { workbook.close(); } }catch(IOException e){ System.out.println(e.toString()); } } } }
実行結果

指定したセルの値が取得できました!!!
まとめ
JavaでExcelを操作するにはApachePOIを用いれば容易にできることがわかりました。
これを応用して業務の効率化に役立たせましょう!!
では。(@^^)/~~~