【发布时间】:2014-11-04 10:56:49
【问题描述】:
我有一个使用 apache poi 读取 xls 表的应用程序。当单元格具有数值时,我通过 row.getCell(i).getNumericValue() 读取它。但它返回浮点数。就像如果单元格值为 1,它返回 1.0。我可以将其转换为 int 吗?任何帮助,将不胜感激。我试过 Integer.parseInt(value)- 但它抛出 NumberFormat 异常。任何帮助表示赞赏。这是伪代码:
FileInputStream file = new FileInputStream(new File("C:\\test.xls"));
HSSFWorkbook workbook = new HSSFWorkbook(file);
HSSFSheet sheet = workbook.getSheetAt(0);
Iterator<Row> rowIterator = sheet.iterator();
while(rowIterator.hasNext()) {
Row row = rowIterator.next();
Iterator<Cell> cellIterator = row.cellIterator();
while(cellIterator.hasNext()) {
Cell cell = cellIterator.next();
switch(cell.getCellType()) {
case Cell.CELL_TYPE_NUMERIC:
String value= String.valueOf(cell.getNumericCellValue());
int intVal = Integer.parseInt(value)-->>throws Exception
【问题讨论】:
-
知道了,获取两倍于 conert 到 int 的值:Double val = cell.getNumericCellValue(); val.intValue 会给出答案
-
这是一个简单的解决方案:
double dval = row.getCell(cellCounter, XSSFRow.CREATE_NULL_AS_BLANK ).getNumericCellValue(); System.out.println(new Integer(new Double(dval).intValue()).toString());
标签: java apache-poi xls numberformatexception