Scala
Apache
Excel
POI

ScalaでExcelを操作する 基本的な読み書き編

More than 3 years have passed since last update.

ScalaでExcelファイルを操作する機会があったので、メモを残しておきます。今回はApache POIを使いました。


POIの導入


build.sbt

libraryDependencies += "org.apache.poi" % "poi" % "3.13"



Excelを読む


ワークブックの取得

import org.apache.poi.ss.usermodel._

val workbook = WorkbookFactory.create(new File("/path/to/excel/file"))


シートの取得


インデックスで取得

val sheet = workbook.getSheetAt(0)


名前で取得

val sheet = workbook.getSheet("新しいシート")


行の取得

val row = sheet.getRow(0)


セルの取得

val cell = row.getCell(0)


セルの値の取得

セルのタイプ毎にgetCellXXXValueが違う点だけ注意です。

val value = cell.getCellType match {

case Cell.CELL_TYPE_BLANK => cell.getStringCellValue
case Cell.CELL_TYPE_BOOLEAN => cell.getBooleanCellValue
case Cell.CELL_TYPE_ERROR => cell.getErrorCellValue
case Cell.CELL_TYPE_FORMULA => cell.getCellFormula
case Cell.CELL_TYPE_NUMERIC => cell.getNumericCellValue
case Cell.CELL_TYPE_STRING => cell.getStringCellValue
}


Excelに書く


セルの取得

セルの取得までは読む場合と同じ。


セルに値をセットする

cell.setCellValue("hoge")


ファイルに出力する

val out = java.io.FileOutputStream("/path/to/output")

workbook.write(out)
out.close

当たり前ですが、cell.setCellValueしただけだど、Excelファイルにはなんら反映されないので注意してください。

以上、基本的なExcelの読み書きでした。