JavaからExcelファイルを操作できるようにするライブラリ「Apach POI」を使ってみました。
プログラミングを初めるときにどの言語でも最初に行う「Hello World」みたいに、
動きましたー!すごいー!、、、のような内容です。
ちなみに、Excelが無い環境でも動きます。ちょっと感動しました。
(Excelが入っていないプライベートPCでもxlsxファイルを出力できました)
開発環境
- Eclipse:202209
- Java:SE11
- Apach POI:5.2.3
環境構築
まずは、主役となる「Apach POI」を以下からダウンロード
https://poi.apache.org/
ダウンロード→「Binary Distribution」→「poi-bin-5.2.3-20220909.zip」→「HTTP」
Eclipse上の操作
- 新規「Javaプロジェクト」
- Java11
- 「ライブラリ」→「クラスパス」→「外部JARの追加」
- 解凍したフォルダの中のjarファイルをすべて追加する
今回はシンプルに何も考えず環境構築をしました。
実践
以下ソースです。
import java.io.FileOutputStream;
import java.io.IOException;
import org.apache.poi.xssf.usermodel.XSSFCell;
import org.apache.poi.xssf.usermodel.XSSFRow;
import org.apache.poi.xssf.usermodel.XSSFSheet;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
public class Main{
public static void main(String[] args){
try{
//まっさらなworkbookを作る
XSSFWorkbook workbook = new XSSFWorkbook();
XSSFSheet sheet = workbook.createSheet();
XSSFRow row = sheet.createRow(0);
XSSFCell cell = row.createCell(0);
cell.setCellValue("セルに値を書き込めるよ");
String path = "C:/Users/XXX/Desktop/";
String fileName = "complete.xlsx";
FileOutputStream output = new FileOutputStream(path + fileName);
workbook.write(output);
}catch(IOException e){
e.printStackTrace();
}
}
}
指定したパス、指定したファイル名で出力されていることを確認出来ました。
下記のコードを追加すれば、上の画像のようにシート名を設定できます。
そして、getSheetで対象のシートを操作出来ます。
workbook.setSheetName(0, "sample");
sheet = workbook.getSheet("sample");
終わりに
JavaからExcelファイルを出力できるだけでちょっと感動しました。
読み込むことも可能なので、簡易的なDBのように使うことも出来そうです。
次回以降試してみようと思います。