Apache POI を用いることで、javaでExcelファイルを出力するプログラムを作成することができるようになります。
今回は、環境設定を行い、HelloWorldを試す所まで記事にしました。
ライブラリを落としてきたりパスの設定をするのに手間がかかるので、今回は Eclipse + Maven で設定を行っています。
【Mavenプロジェクトの作成】
1.Eclipseを立ち上げ、ファイル > 新規 > Mavenプロジェクト を選択。
2.「シンプルなプロジェクトの作成」「デフォルト・ワークスペース・ロケーションの使用」にチェックを入れて次に進む。
3.グループIdに任意の名前(プロジェクトを一意に識別する名前)、アーティファクトIdにプロジェクト名を入力し、完了を押下する。
4.作成されたプロジェクトについて、JREシステム・ライブラリー > プロパティー を選択。
5.適切な実行環境を設定(今回は「JavaSE-1.8」を選択)
【ライブラリのインストール・設定】
1.作成されたプロジェクトに存在するpom.xmlを開き、下記のように入力する。
<project xmlns=”http://maven.apache.org/POM/4.0.0″ xmlns:xsi=”http://www.w3.org/2001/XMLSchema-instance” xsi:schemaLocation=”http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd”>
<modelVersion>4.0.0</modelVersion>
<groupId>hoge</groupId>
<artifactId>ProjectName</artifactId>
<version>0.0.1-SNAPSHOT</version>
<dependencies>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi</artifactId>
<version>4.1.2</version>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
<version>4.1.2</version>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml-schemas</artifactId>
<version>4.1.2</version>
</dependency>
</dependencies>
</project>
※
dependenciesタグを自分で追記する。
※
dependencyタグ内の記述については、自分で調べる場合はMVNrepositoryで調べる。ライブラリ名で検索すると、dependencyタグの記述する内容が記載されているページにたどり着く。
2.pom.xmlを保存すると、dependencyタグに記載されたライブラリが自動的にインストール・設定される。
【Excelファイルを出力】
1.src/main/java 直下で右クリックし、新規 > クラス を選択。その後、クラス名(今回は「POITestMain」)を入力し、クラスを生成する。
2.下記のようにソースを記述する。
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 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 |
import java.io.FileOutputStream; import org.apache.poi.xssf.usermodel.XSSFCell; import org.apache.poi.xssf.usermodel.XSSFCellStyle; import org.apache.poi.xssf.usermodel.XSSFFont; import org.apache.poi.xssf.usermodel.XSSFRow; import org.apache.poi.xssf.usermodel.XSSFSheet; import org.apache.poi.xssf.usermodel.XSSFWorkbook; public class POITestMain { public static void main(String[] args) { FileOutputStream fos = null; XSSFWorkbook workbook = null; try { // ワークブック→シート→行→セルの生成 workbook = new XSSFWorkbook(); XSSFSheet sheet = workbook.createSheet(); XSSFRow row = sheet.createRow(0); XSSFCell cell = row.createCell(0); // セルの書式の生成 XSSFCellStyle cellStyle = workbook.createCellStyle(); XSSFFont font = workbook.createFont(); font.setFontName("MS ゴシック"); cellStyle.setFont(font); cell.setCellStyle(cellStyle); // セルに書き込み cell.setCellValue("Hello World!"); // ファイル書き込み fos = new FileOutputStream("C:\\tmp\\test.xlsx"); workbook.write(fos); } catch(Exception e) { e.printStackTrace(); } finally { try { if (fos != null) { fos.close(); } if (workbook != null) { workbook.close(); } } catch(Exception e) { e.printStackTrace(); } } } } |
3.クラスを実行すると、ソース内で記述したパスに下記のような内容のファイルが生成される。
※
実行時にjava.lang.NoClassDefFoundErrorが出る可能性があります(私の環境では出ました)。
その場合は、Eclipseを一度落とし、C:\Users\ユーザ名\.m2 にある repository フォルダを削除し、もう一度Eclipseを立ち上げ、プロジェクトで右クリック > 実行 > Maven Clean を実施し、pom.xmlをもう一度保存し直したりしてみて下さい。
良く起こる事象のようで、「Maven NoClassDefFoundError」でWebで検索すると色々情報が出てきます。
いかがでしたでしょうか?
Apache POIはよく使われているライブラリのようで、Webで検索すると色々と情報が見つかりますが、導入するまでの所で意外とつまずくポイントが少なくないと感じたので、今回の記事を執筆しました。
個人的に、新しい技術を学ぶ時には、「概要の理解→導入→できる限りシンプルなコードで動作確認(多くの場合はHelloWorld)」という流れを大事にしています。
(動いて終わりではなく、なぜ動いたのかを自分で調べて理解することが大事です)
ここまでできれば、詳しい使い方を調べてコードを付け加えていくことで、実務にも耐え得る成果物を作ることができるからです。
これからも、技術を導入する際に役に立つ記事を書いていきたいと思います!
コメント