gpt4 book ai didi

java - 如何用Java做Excel的 "Convert to Number"

转载 作者:行者123 更新时间:2023-11-29 05:18:39 25 4
gpt4 key购买 nike

我正在使用 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 单元格时得到相同的输出。

enter image description here

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

最佳答案

我认为有很多方法可以完成你规定的事情,但最直接的方法就是使用 VALUE() 函数,然后对其求值。这当然不是最有效的方法,但它确实有效。

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

        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);

如果您愿意,可以使用相同的方法替换原始单元格的内容。

关于java - 如何用Java做Excel的 "Convert to Number",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25636632/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com