2013-10-18 24 views
1

jOpenDocument 라이브러리를 사용하여 .ods 스프레드 시트를 처리하고 있습니다. 문자열을 처리하고 있었기 때문에 모든 것이 괜찮 았지만 번호를 처리 할 때는 문제가되었습니다.jOpenDocument. getValueAt (int, int) 반환 값은 String 및 BigDecimal입니다.

내 코드에서 스프레드 시트를 반복하고 인덱스 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) 

. 클래스가 보이는이 시간이 단지의 BigDecimal 될 것을

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) 

참고 :

내가 문자열로 반환 된 객체를 구문 분석하려고하면

, 나는 또 다른 ClassCastException이 얻을.

문서를 찾으려고했지만 this javadoc에서 Sheet.getValueAt (String) 만 사용할 수 있습니다. (나는 튜토리얼에서이 방법을 찾았지만, 문자열에서 잘 작동하는 것 같다.) 어떻게해야합니까?

답변

0

원본 스프레드 시트는 어떻게 생성됩니까? 파일에서 읽습니까?

해결 방법이 될 수있다 :

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

당신이 셀의 문자열 값을 읽은 다음 BigDecimal를

에 구문 분석이 방법을