Iterating over Java collections in Scala

前端 未结 9 1492
不思量自难忘°
不思量自难忘° 2020-11-28 02:19

I\'m writing some Scala code which uses the Apache POI API. I would like to iterate over the rows contained in the java.util.Iterator that I get from the Sheet

9条回答
  •  刺人心
    刺人心 (楼主)
    2020-11-28 02:42

    With Scala 2.10.4+ (and possibly earlier) it is possible to implicitly convert java.util.Iterator[A] to scala.collection.Iterator[A] by importing scala.collection.JavaConversions.asScalaIterator. Here is an example:

    object SpreadSheetParser2 extends App {
    
      import org.apache.poi.hssf.usermodel.HSSFWorkbook
      import java.io.FileInputStream
      import scala.collection.JavaConversions.asScalaIterator
    
      val ios = new FileInputStream("data.xls")
      val workbook = new HSSFWorkbook(ios)
      var sheet = workbook.getSheetAt(0)
      val rows = sheet.rowIterator()
    
      for (row <- rows) {
        val cells = row.cellIterator()
        for (cell <- cells) {
          print(cell + ",")
        }
        println
      }
    
    }
    

提交回复
热议问题