LoginSignup
12
13

More than 5 years have passed since last update.

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

Last updated at Posted at 2015-10-27

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の読み書きでした。

12
13
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
12
13