使用Apache POI获取活动单元格

时间:2018-01-31 14:44:19

标签: excel scala apache-poi xssf

我使用Apache POI来操作Excel文档。我想编写一个测试,以确保在打开文件时,它会打开文档中的第一个选项卡,并将光标设置为第一个单元格(A1或R1C1)。

我已阅读以下资料:

到目前为止,这是我的测试:

val filePath = '<filepath>'
val myFile = new File(filePath)
val workbook = new XSSFWorkbook(myFile)

behavior of "An excel template doc" in {
  it should "open to the first tab" in {
    assert(workbook.getActiveSheetIndex == 0)
  }
  it should "open with the cursor cell at cell A1" in {
    assert(workbook.getSheetAt(0).getActiveCell == CellAddress.A1)
  }
} 

第一个标签的第一个测试开始通过。

但是第二个测试总是给我一个空指针异常。即使我进入文档并将光标移动到单元格A1并保存文档,活动单元格仍然为空。我认为Active Cell没有设置为光标指向的单元格。或者,当文件打开时,活动单元格始终设置为空,并且在 设置活动单元格之后,它不会设置为任何单元格;在这种情况下,除非我实际上首先设置活动单元格,否则无法测试文档是否向A1打开,例如,

workbook.getSheetAt(0).setActiveCell(CellAddress.A1)
assert(workbook.getSheetAt(0).getActiveCell == CellAddress.A1)

^(显然)确实通过了。

任何想法如何在打开文档后如何获取当前活动的游标而不实际设置活动单元格?

0 个答案:

没有答案