ApachePOIを使用してエクセルを操作してみた


こんにちは。

コンストラクションソリューション事業部 開発部の菊池と申します。

最近、業務でJavaからExcelを操作することのできるApachePOIというライブラリを使用する機会があったので、ここに備忘録として残しておこうかなと思います。

ApachePOIについて

ApachePOIとは、Javaを使用して、ExcelやWordなどのファイルを操作するためのライブラリです。

今回は、Excelを操作していこうと思います。

使用したライブラリ

  • commons-codec-1.15.jar
  • commons-fileupload-1.4.jar
  • commons-collections4-4.4.jar
  • commons-io-2.7.jar
  • commons-compress-1.20.jar
  • commons-math3-3.6.1.jar
  • commons-csv-1.8.jar 
  • jackson-annotations-2.10.3.jar
  • jackson-databind-2.10.3.jar 
  • jackson-core-2.10.3.jar
  • poi-5.0.0.jar
  • poi-ooxml-5.0.0.jar
  • poi-ooxml-lite-5.0.0.jar
  • xmlbeans-4.0.0.jar

実際にApachePOIを使用してみる

ApachePOIを使用して、次のようなJavaのプログラムを実行してみます。

  • ある値を、指定したセルに入力
  • 再計算実行
  • 指定したセルより、再計算後の値を取得

手順

  1. エクセルファイルのパスの指定
  2. Workbookの作成
  3. 使用するシートの指定 
  4. 入力セルの決定(A1とする)
  5. 入力値の決定(10とする)
  6. 再計算実行
  7. 出力セルの決定(B1とする)
  8. 出力値の取得

※ビルドパスの設定等は省略させていただきます。

コードは以下の通りです。

また、指定したエクセル(test.xlsx)にB1にA1+10という式を入力しておきます。

実行してみる

結果

しっかり再計算されていることがわかりますね。

このようにして、Javaから簡単にExcelを操作することができるんです!!!

また、今回は簡単な式をセルに入力していますが、ほかにエクセル関数を使用することも可能です。

 

まとめ

実際の現場でこのApachePOIを使用したのですが、そこではテスト時に発見できなったエラーなどが発生しとても苦労しました。

また、私自身、現場に出て本番対応するということが初めてだったということもあり、なおさら焦りを感じました。

もう少しテストをしっかりしておくなど事前準備をしておけば防げた問題も多々あったと思います。

そういった点も含め、今回のプロジェクトに携わったことで自分の未熟さを実感しました。

もっと成長するために、これからもっと様々なことを学んでいきます!