Javaを使用してエクセル操作を行う方法について解説します。この記事では、Apache POIというJavaライブラリを使ってエクセルのデータを読み込み、書き込み、そして分析する方法を紹介します。
目次
1. Apache POIとは?
Apache POIは、JavaプログラムでMicrosoft Officeファイルを操作するためのオープンソースのライブラリです。特にエクセルファイルの読み書きには、HSSF(.xlsファイル用)とXSSF(.xlsxファイル用)というコンポーネントが利用できます。
2. 環境設定
まずは、Apache POIライブラリを利用できるようにするために環境設定を行います。
Mavenを使用する場合:
pom.xml
ファイルに以下の依存関係を追加してください。
<dependencies> <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi</artifactId> <version>5.2.2</version> </dependency> <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi-ooxml</artifactId> <version>5.2.2</version> </dependency> </dependencies>
Gradleを使用する場合:
build.gradle
ファイルに以下の依存関係を追加してください。
dependencies { implementation 'org.apache.poi:poi:5.2.2' implementation 'org.apache.poi:poi-ooxml:5.2.2' }
3. エクセルデータの読み込み
Apache POIライブラリを使ってエクセルファイルを読み込む方法について説明します。
FileInputStream
を使って対象のファイルを読み込みます。Workbook
インターフェイスの実装(HSSFWorkbook
またはXSSFWorkbook
)を使ってエクセルワークブックオブジェクトを生成します。Sheet
、Row
、およびCell
オブジェクトを順に取得し、データを読み込みます。
4. エクセルデータの書き込み
エクセルファイルへの書き込み手順は次の通りです。
- 新規または既存の
Workbook
オブジェクトを用意します。 - データを書き込む
Sheet
、Row
、およびCell
オブジェクトを作成または取得します。 - データを
Cell
オブジェクトに設定します。 FileOutputStream
を使ってファイルに書き込みます。
5. エクセルデータの分析
エクセルデータをJavaプログラムで効率よく処理するために、以下のような手法があります。
6. コード例
以下に、エクセルファイルの読み込み、書き込みおよびデータ処理のコード例を示します。
エクセルデータの読み込み
import org.apache.poi.ss.usermodel.*; import org.apache.poi.xssf.usermodel.XSSFWorkbook; import java.io.FileInputStream; import java.io.IOException; public class ExcelReader { public static void main(String[] args) throws IOException { FileInputStream fis = new FileInputStream("sample.xlsx"); Workbook workbook = new XSSFWorkbook(fis); Sheet sheet = workbook.getSheetAt(0); for (Row row : sheet) { for (Cell cell : row) { String cellValue = DataFormatter(cell); System.out.print(cellValue + "\t"); } System.out.println(); } workbook.close(); fis.close(); } private static String DataFormatter(Cell cell) { DataFormatter formatter = new DataFormatter(); return formatter.formatCellValue(cell); } }
エクセルデータの書き込み
import org.apache.poi.ss.usermodel.*; import org.apache.poi.xssf.usermodel.XSSFWorkbook; import java.io.FileOutputStream; import java.io.IOException; public class ExcelWriter { public static void main(String[] args) throws IOException { Workbook workbook = new XSSFWorkbook(); Sheet sheet = workbook.createSheet("新規シート"); Row row = sheet.createRow(0); Cell cell = row.createCell(0); cell.setCellValue("Hello, Excel!"); FileOutputStream fos = new FileOutputStream("output.xlsx"); workbook.write(fos); fos.close(); workbook.close(); } }
この記事では、JavaとApache POIライブラリを使ってエクセル操作を行う方法について学びました。これらの基本的な方法を応用し、自動化やデータ処理を含むエクセルタスクを効率的に実行することができます。