我在一个项目中工作。它的服务器端应用程序在ofbiz中。我想读取,编辑,更新等excel工作表。但是在正常的Java程序中,它的工作原理是。我使用apache poi API。应用程序。然后有时会出现一些异常。以下是

"
     [java] java.lang.IllegalStateException: Cannot get a text value from a nume
ric formula cell
     [java]     at org.apache.poi.hssf.usermodel.HSSFCell.typeMismatch(HSSFCell.
java:637)
     [java]     at org.apache.poi.hssf.usermodel.HSSFCell.checkFormulaCachedValu
eType(HSSFCell.java:642)
     [java]     at org.apache.poi.hssf.usermodel.HSSFCell.getRichStringCellValue
(HSSFCell.java:719)
     [java]
     [java]     at org.apache.poi.hssf.usermodel.HSSFCell.getStringCellValue(HSS
FCell.java:697)
     [java]     at org.ofbiz.productionmgntSystem.setTargetPlan.getRequiredData(
setTargetPlan.java:764)
     [java]     *****
     [java]     at org.ofbiz.productionmgntSystem.setTargetPlan.setTask(setTarge
tPlan.java:201)
     [java]     at org.ofbiz.productionmgntSystem.ThreadProcess.run(ThreadProces
s.java:113)

"


在这里,我在普通的Java和Ofbiz中都使用相同的apache poi API。

最佳答案

读取整数事务编号时,我遇到了同样的问题。解决此问题的自然方法是使用:

if(cell.getCellType()==Cell.CELL_TYPE_NUMERIC) {
   String.valueOf(cell.getNumericCellValue());
}


由于12345转换为12345.0,因此无法使用

要获得与excel文档中显示的字符串值完全相同的解决方法,请执行以下操作:

cell.setCellType(Cell.CELL_TYPE_STRING);
String cellValue=cell.getStringCellValue();

10-07 12:22