当字母数字值遇到

时间:2017-07-20 22:32:47

标签: excel parsing groovy apache-poi soapui

我正在尝试使用Groovy脚本读取Soap Ui中的excel数据。一切都看起来不错,除非脚本试图获得优秀的单元格数据然后它抛出异常。我不知道如何使用以下两种组合:

log.info cell.getNumericCellValue()
log.info cell.getStringCellValue()

这就是我的Excel数据的样子:

Column1  Column2

USA         1
CANADA      2
FRANCE      3

以下是我的代码:

import org.apache.poi.xssf.usermodel.*


def fs = new FileInputStream("C:\\File\\Book2.xlsx")
def wb = new XSSFWorkbook(fs)
def ws = wb.getSheet("Sheet1")
def r = ws.getPhysicalNumberOfRows()


for(def i=0; i<r; i++){

    def row = ws.getRow(i)
    def c = row.getPhysicalNumberOfCells()

    for (def j=0; j<c; j++) {

        def cell = row.getCell(j)

         log.info cell.getStringCellValue()
    }
}

当我运行上面的代码然后我是gettig当我的excel包含一个具有Alpha值的列而另一列具有数值时出现异常:

java.lang.illegalStateException:Cannot get a STRING value from a NUMERIC cell

当我将log.info cell.getStringCellValue()更新为log.info cell.getNumericCellValue()时,它会抛出以下异常:

 java.lang.illegalStateException:Cannot get a NUMERIC value from a STRING cell

1 个答案:

答案 0 :(得分:0)

我做了一些研究,发现这就是我们解析价值的方法:

我只是将以下代码中的cell.getStringCellValue()替换为cell.toString(),并解决了异常问题。

更新后的代码如下:

import org.apache.poi.xssf.usermodel.*


def fs = new FileInputStream("C:\\File\\Book2.xlsx")
def wb = new XSSFWorkbook(fs)
def ws = wb.getSheet("Sheet1")
def r = ws.getPhysicalNumberOfRows()


for(def i=0; i<r; i++){

    def row = ws.getRow(i)
    def c = row.getPhysicalNumberOfCells()

    for (def j=0; j<c; j++) {

        def cell = row.getCell(j)

         log.info cell.toString()
    }
}