如何在Java中执行Excel的“转换为数字”

我正在使用Apache POI从Excel读取数据。 我想在Java中读取时将一些单元格转换为数字,如下所示:

Input 01.0234500 Output 1.02345 Input 412206362371 Output 4.12206E+11 Input 1234.201400002345 Output 1234.2014 

当我在Excel中使用“转换为数字”时,它工作正常。 但是我想在读取Java中的Excel单元格的同时输出。

在这里输入图像说明

它也可以在Excel中使用=VALUE()函数来实现。 但是,我如何在Java中实现相同的function呢?

我认为有很多方法可以完成你所规定的内容,但最直接的方法就是使用VALUE()函数,然后对其进行评估。 这当然不是最有效的方法,但它的工作原理。

本质上,我们只是读入input单元格的值,然后创build一个新的单元格公式单元格,其中包含以原始值作为参数的VALUE()函数。 之后,我们调用evalutateInCell来评估VALUE()函数,并用结果replace单元格的值。

  XSSFWorkbook wb = new XSSFWorkbook(); XSSFSheet sheet = wb.createSheet("test"); Row row = sheet.createRow(0); Cell inCell = row.createCell(0); inCell.setCellValue("01.0234500"); Cell outCell = row.createCell(1); FormulaEvaluator fev = wb.getCreationHelper().createFormulaEvaluator(); String value = inCell.getStringCellValue(); outCell.setCellFormula("VALUE(" + value + ")"); fev.evaluateInCell(outCell); 

如果这是您的偏好,您可以使用相同的方法来replace原始单元格的内容。