gpt4 book ai didi

java - jOpenDocument Sheet.getValueAt(int, int) 返回值既是 String 又是 BigDecimal?

转载 作者:行者123 更新时间:2023-12-01 04:15:58 27 4
gpt4 key购买 nike

我正在使用 jOpenDocument 库处理 .ods 电子表格。由于我处理的是字符串,所以一切都很好,但是当涉及到处理数字时,就很痛苦了。

在我的代码中,我迭代电子表格并根据索引 x,y 处的单元格假定的值进行一些计算。令人惊讶的是,我无法获得我得到的值的类别:

BigDecimal ferialestringa;
while (true) {
boolean duplicate = false;
value = (String) sheet.getValueAt(0, count);
System.out.println(sheet.getValueAt(5, count).getClass());
ferialestringa = (BigDecimal) sheet.getValueAt(5, count);

此片段打印出来:

class java.math.BigDecimal
class java.lang.String
Exception in thread "main" java.lang.ClassCastException: java.lang.String cannot be cast to java.math.BigDecimal
at InspectTwitter.main(InspectTwitter.java:78)

您可以看到该值似乎属于两个不同的类。

如果我尝试将返回的对象解析为字符串,我还会得到另一个 ClassCastException:

class java.math.BigDecimal
Exception in thread "main" java.lang.ClassCastException: java.math.BigDecimal cannot be cast to java.lang.String
at InspectTwitter.main(InspectTwitter.java:78)

请注意,这次类似乎只是 BigDecimal。

我尝试查找文档,但 this 上仅提供 Sheet.getValueAt(String) javadoc。 (不过,我在教程中找到了这种方法,并且它似乎在字符串上运行得很好)。我该怎么办?

最佳答案

原始电子表格是如何创建的?你从文件中读取它吗?

解决方法可能是:

ferialestringa = new BigDecimal(sheet.getCellAt(5, count).getTextValue());

通过这种方式,您可以读取单元格的字符串值,然后将其解析为 BigDecimal

关于java - jOpenDocument Sheet.getValueAt(int, int) 返回值既是 String 又是 BigDecimal?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19450775/

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