FileInputStream file=new FileInputStream ("C:\\Users\\sagar.lankegowda\\Desktop\\My workspace\\adt bundle\\adt-bundle-windows-x86_64-20140702\\eclipse\\Excel\\UserCreditanls.xls");
Workbook wb=WorkbookFactory.create(file);
Sheet st=wb.getSheet("Sheet1");
Row r= st.getRow(0);
Cell c=r.getCell(1);
String str="";
if(c.equals(str))
{
System.out.println(c.getStringCellValue());
}
//System.out.println(str);
else
{
System.out.println(c.getNumericCellValue());
}
System.out.println(str);
在运行此代码时,我得到一个例外:
Exception in thread "main" java.lang.IllegalStateException: Cannot get a NUMERIC value from a STRING cell
答案 0 :(得分:2)
这里你可以做的只是根据需要格式化单元格类型。 我在下面发布了以下代码:
private static String formatCell(Cell cell)
{
NumberFormat nf = NumberFormat.getNumberInstance(Locale.getDefault());
DecimalFormat df = (DecimalFormat)nf;
df.setRoundingMode(RoundingMode.CEILING);
df.setGroupingUsed(false);
df.setMaximumFractionDigits(2);
if (cell == null) {
return "";
}
switch(cell.getCellType()) {
case Cell.CELL_TYPE_BLANK:
return "";
case Cell.CELL_TYPE_BOOLEAN:
return Boolean.toString(cell.getBooleanCellValue());
case Cell.CELL_TYPE_ERROR:
return "*error*";
case Cell.CELL_TYPE_NUMERIC:
return df.format(cell.getNumericCellValue());
case Cell.CELL_TYPE_STRING:
return cell.getStringCellValue();
case Cell.CELL_TYPE_FORMULA:
return df.format(cell.getNumericCellValue());
default:
return "<unknown value>";
}
}
并致电:
formatCell(row.getCell(0))