はじめに
業務アプリやデータ処理でよく使われるExcel(.xlsx)ファイル。Javaでは、Apache POIというライブラリを使って、Excelの読み書きが可能です。
この記事では、以下のような操作を紹介します
- Excelファイルの新規作成
- セルへのデータ書き込み
- 既存ファイルの読み取り
- 行・列の操作と保存
Apache POIとは?
Apache POIは、Microsoft Office文書をJavaで操作するためのオープンソースライブラリです。
.xls
(HSSF)と.xlsx
(XSSF)の両方に対応- Excelだけでなく、WordやPowerPointも操作可能
開発環境と準備
- Java 11 以上
- Maven(推奨)またはJar手動追加
Mavenの依存関係(pom.xml)
<dependencies>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi</artifactId>
<version>5.2.5</version>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
<version>5.2.5</version>
</dependency>
</dependencies>
Excelファイルの作成と書き込み
import org.apache.poi.ss.usermodel.*;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import java.io.FileOutputStream;
public class ExcelWriter {
public static void main(String[] args) {
try (Workbook workbook = new XSSFWorkbook()) {
Sheet sheet = workbook.createSheet("データ");
Row row = sheet.createRow(0);
Cell cell = row.createCell(0);
cell.setCellValue("こんにちは Excel");
try (FileOutputStream out = new FileOutputStream("output.xlsx")) {
workbook.write(out);
}
System.out.println("Excelファイルを書き出しました。");
} catch (Exception e) {
e.printStackTrace();
}
}
}
既存のExcelファイルを読み取る
import java.io.FileInputStream;
import org.apache.poi.ss.usermodel.*;
public class ExcelReader {
public static void main(String[] args) {
try (Workbook workbook = WorkbookFactory.create(new FileInputStream("output.xlsx"))) {
Sheet sheet = workbook.getSheetAt(0);
Row row = sheet.getRow(0);
Cell cell = row.getCell(0);
System.out.println("読み込んだ内容: " + cell.getStringCellValue());
} catch (Exception e) {
e.printStackTrace();
}
}
}
行・列の操作と数式対応
複数のセルに書き込み
for (int i = 0; i < 10; i++) {
Row row = sheet.createRow(i);
for (int j = 0; j < 5; j++) {
Cell c = row.createCell(j);
c.setCellValue("R" + i + "C" + j);
}
}
数式を設定する
Cell formulaCell = sheet.createRow(1).createCell(2);
formulaCell.setCellFormula("SUM(A1:B1)");
Excelファイルの保存と出力先確認
- ファイルはFileOutputStreamで任意のパスに保存可能
- Javaアプリから定期レポートを自動出力する際にも便利です
まとめ
Apache POIを使えば、JavaでExcelファイルを自在に操作できます。業務レポートの自動作成や、ユーザー入力をExcel形式で保存する機能など、多くの場面で活用可能です。