top / index / prev / next / target / source
日記形式でつづる いがぴょんコラム ウェブページです。
大きな Excel ブックを Apache POI を用いて作成するシンプルなサンプルをメモします。
完全なソースコードは以下にあります。
ポイントとなるソースコードは以下の箇所です。
Maven の依存関係、つまり pom.xml
記述に以下を追加します。
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
<version>3.17</version>
</dependency>
そして、POI を利用する Java ソースコードを以下のように記述します。
import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.ss.usermodel.Sheet;
import org.apache.poi.xssf.streaming.SXSSFWorkbook;
try (SXSSFWorkbook workbook = new SXSSFWorkbook(10)) {
for (int indexSheet = 0; indexSheet < 4; indexSheet++) {
final Sheet sheet = workbook.createSheet();
for (int indexColumn = 0; indexColumn < 20; indexColumn++) {
sheet.setColumnWidth(indexColumn, 256 * 3);
}
for (int indexRow = 0; indexRow < 100; indexRow++) {
final Row row = sheet.createRow(indexRow);
for (int indexColumn = 0; indexColumn < 10; indexColumn++) {
final Cell cell = row.createCell(indexColumn);
cell.setCellValue("Data of (" + indexColumn + ":" + indexRow + ")");
}
}
}
try (BufferedOutputStream out = new BufferedOutputStream(new FileOutputStream("./target/aout.xlsx"))) {
workbook.write(out);
}
workbook.dispose();
}
POI の他のコーディング API と異なり、この記法は より大きな Excel ファイルの作成が可能です。メモリ効率よく Excel ブックを作成できるのは便利ですね。
Last modified: $Date: 2018-04-18 $