Excelの関数って、ときどき増えるよね。
ま、使う関数なんていつもそんなに変わらんけどw
Apache POIを使って、Excelのセルに数式を設定するサンプル
Apache POIを使ってExcelファイルを作成します。
上3行にデータをセットして、下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 | import java.io.FileOutputStream; import java.io.IOException; import org.apache.poi.ss.usermodel.Row; import org.apache.poi.ss.usermodel.Sheet; import org.apache.poi.ss.usermodel.Workbook; import org.apache.poi.xssf.usermodel.XSSFWorkbook; public class ExcelFormulaTest { public static void main(String[] args) throws IOException { //ワークブック作成 try (Workbook workbook = new XSSFWorkbook()) { //シート作成 Sheet sheet = workbook.createSheet("しーと1"); //データを作成 sheet.createRow(1).createCell(1).setCellValue(10); sheet.createRow(2).createCell(1).setCellValue(20); sheet.createRow(3).createCell(1).setCellValue(30); //合計と平均の式を追加 Row r1 = sheet.createRow(4); Row r2 = sheet.createRow(5); r1.createCell(0).setCellValue("合計"); r1.createCell(1).setCellFormula("SUM(B2:B4)"); r2.createCell(0).setCellValue("平均"); r2.createCell(1).setCellFormula("AVERAGE(B2:B4)"); //ファイル出力 try (FileOutputStream outputStream = new FileOutputStream("c:\\work\\test.xlsx")) { workbook.write(outputStream); } } catch (IOException e) { e.printStackTrace(); } } } |
実行結果
Excelファイルが作成されます。
上の3つがデータ。下の2行に合計と平均の式です。
サンプルの解説
Cell#setCellFormula(String)を使ってExcelの数式をセットすることができます。
もちろん数式は、Excelでふだん使っているものがセットできます。
※このコードを使用するには、別途Apache POIの入手が必要です。
入手方法などはこちらの記事に書いてあります。