首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >jOpenDocument Sheet.getValueAt(int,int)返回值既是字符串又是BigDecimal?

jOpenDocument Sheet.getValueAt(int,int)返回值既是字符串又是BigDecimal?
EN

Stack Overflow用户
提问于 2013-10-18 21:22:05
回答 1查看 701关注 0票数 1

我正在使用jOpenDocument库处理一个.ods电子表格。因为我是在处理字符串,所以一切都很好,但是当涉及到处理数字时,这是一件痛苦的事情。

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

代码语言:javascript
复制
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);

这段代码打印出来:

代码语言:javascript
复制
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:

代码语言:javascript
复制
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 javadoc上只有Sheet.getValueAt(字符串)可用。(我在教程中发现了这种方法,而且它在字符串上似乎工作得很好)。我该怎么办?

EN

回答 1

Stack Overflow用户

发布于 2013-11-08 08:28:58

原始SpreadSheet是如何创建的?你是从文件中读取的吗?

一种解决方法可能是:

代码语言:javascript
复制
ferialestringa = new BigDecimal(sheet.getCellAt(5, count).getTextValue());

这样,您可以读取单元格的字符串值,然后将其解析为BigDecimal

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19450775

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档