如何在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原始单元格的内容。