我正在尝试使用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
答案 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()
}
}