代码之家  ›  专栏  ›  技术社区  ›  user3813942

Apache POI Java 6到8的差异

  •  0
  • user3813942  · 技术社区  · 7 年前

    我正在使用apache poi 3.12和Java 1.6中的HSSFWorkbook。xls文件转换为制表符分隔的文本文件。在我的processRecord方法中,我使用数字记录numrec上的formatTrackingsFlistener从数字字段中获取值,代码如下:

    String value = formatListener.getFormatString(numrec);

    • 为什么会发生这种情况?(最不重要)
    • 在Java 1.8中,是否有方法检索值,使其舍入而不是截断?
    • 有没有一种方法可以在不进行舍入或截断的情况下以原始形式检索值?

    我已经尝试了另一种从xls文件中获取值的方法:

    String value = new DataFormatter().formatCellValue(cell);

    但我也有同样的行为。

    1 回复  |  直到 7 年前
        1
  •  0
  •   Frank    7 年前

    public static void main(String[] args) {
    
        try {
            FileInputStream is = new FileInputStream(new File("C:\\ook.xls"));
            HSSFWorkbook wb = new HSSFWorkbook(is);
            HSSFSheet sheet = wb.getSheet("Sheet1");
    
            Row row =  sheet.getRow(0);
            Cell cell = row.getCell(0);
    
            System.out.println(cell.getNumericCellValue());//returns a double value so its ok
    
        } catch (IOException e) {
            e.printStackTrace();
        }
        finally{
    
        }
    }
    

    Apache poi库:

    enter image description here

    结果:

    enter image description here

    enter image description here