使用java中的Apache POI从数字单元读取整数
发布时间:2020-12-15 05:12:07 所属栏目:Java 来源:网络整理
导读:我有一个应用程序,使用apache poi读取xls表.当单元格具有数值时,我通过row.getCell(i).getNumericValue()读取它.但它返回浮点数.就像单元格值为1一样,它返回1.0.我可以将它转换为int吗?任何帮助,将不胜感激.我尝试了Integer.parseInt(value) – 但它抛出了N
我有一个应用程序,使用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 解决方法
您可以使用简单的步骤将int值读取为字符串apache poi
首先使用以下方法计算工作表中的行数 private int getRowCount(Sheet currentSheet) { int rowCount = 0; Iterator<Row> rowIterator = currentSheet.iterator(); while(rowIterator.hasNext()) { Row row = rowIterator.next(); if(row == null || row.getCell(0) == null || row.getCell(0).getStringCellValue().trim().equals("") || row.getCell(0).toString().trim().equals("") || row.getCell(0).getCellType()==Cell.CELL_TYPE_BLANK){ break; } else rowCount=rowCount + 1; } return rowCount; } 然后在您的方法中使用以下代码 Workbook workbook = WorkbookFactory.create(new File("c:/test.xls"); Sheet marksSheet = (Sheet) workbook.getSheet("Sheet1"); int zoneLastCount = 0; if(marksSheet !=null ) { zoneLastCount = getRowCount(marksSheet); } int zone = zoneLastCount-1; int column=1 for(int i = 0; i < zone; i++) { Row currentrow = marksSheet.getRow(i); double year = Double.parseDouble(currentrow.getCell(columnno).toString()); int year1 = (int)year; String str = String.valueOf(year1); } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |