//我在一个班级中有这个方法
public class cls1 {
public void enterZip1(String zip1Value){
driver.findElement(zip1).sendKeys(zip1Value);
}
}
//我在另一个课程中有以下片段。
public class cls2{
Cell zip1Col = row.getCell(zip1ColNo);
String zip1Value = zip1Col.getStringCellValue();
cls1.enterZip1(zip1Value);
}
当我使用Eclipse运行我的selenium webdriver脚本时,我收到此错误:
java.lang.IllegalStateException: Cannot get a STRING value from a NUMERIC cell
at org.apache.poi.xssf.usermodel.XSSFCell.typeMismatch(XSSFCell.java:1077)
at org.apache.poi.xssf.usermodel.XSSFCell.getRichStringCellValue(XSSFCell.java:395)
at org.apache.poi.xssf.usermodel.XSSFCell.getStringCellValue(XSSFCell.java:347)
at com.carem.ss.dd(ss.java:215)
..........
错误指向:
String zip1Value = zip1Col.getStringCellValue();
数据来自excel文件。我在excel文件中有zip1列。 Zip1单元格只有数值。我知道导致错误的原因,但我无法修复它。 Excel单元格具有数值,但我声明了一个字符串变量。我试图改变
String zip1Value = zip1Col.getStringCellValue();
到
String zip1Value = zip1Col.getNumericCellValue();
然后我迷路了,因为eclipse建议进行其他改动,包括上述方法。 Excel将始终具有数值。如何修改我的代码以便它接受数值?
更新
答案 0 :(得分:0)
参考您的评论,并根据您提供给我的屏幕截图,错误明确指出该值是双倍的。 Double是一种数值。我最初错误地认为该值是一个整数(数字),这就是为什么我的第一个建议不起作用,但以下应该有效:
String zip1Value = Double.toString(zip1Col.getNumericCellValue());
答案 1 :(得分:0)
导入此:
import org.apache.poi.ss.util.NumberToTextConverter;
补充说:
String zip1Value = NumberToTextConverter.toText(zip1Col.getNumericCellValue());
有效。