2017-12-18 14 views
0

자바를 사용하여 데이터를 읽는 스마트 시트가 있습니다. 열 중 하나에 추가 형식이없는 TEXT_NUMBER 개의 데이터가 포함되어 있습니다. Cell.getValue()를 사용하여이 셀의 내용을 가져옵니다.Smartsheet에서 숫자 읽기 Cell.getValue()

제 문제는 세포가 무엇을 포함하고 있는지 알 수 없습니다. 텍스트 나 숫자 (전체 또는 소수)를 포함 할 수 있습니다. 경우에 따라 소수점 이하 자릿수는 0.45와 같을 수 있습니다.이 경우 스마트 시트는 내부적으로 텍스트에 아포스트로피를 추가합니다. 이것은 내가 텍스트 부분을 읽는 방법입니다. -

String cellValue = Objects.toString(cell.getValue() != null ? cell.getValue() : 
        cell.getDisplayValue()); 

이것은 텍스트 내용에 대해서는 잘 작동하지만, cell.getValue()는 숫자에 대해 0.0을 반환합니다. 스마트 시트에서 숫자 데이터를 가져 오는 방법을 모르겠습니다.

if ("0.0".equals(cellValue)) 
     return cell.getDisplayValue(); 

을하지만 내가 자바 더블 더블 분석에서 다루고있어 선 아래로 실패합니다 -하지만 그 순간, 나는 약간의 해킹을 사용하고 있습니다.

스마트 시트 셀에서 숫자 데이터를 처리하는 방법에 대해 조언 해 줄 수 있습니까? 정말 고마워.

답변

1

명시 적으로 값을 String으로 설정하지 않는 한 0.45와 같은 십진수는 이 아니며에는 어포 스트로피가 앞에 추가됩니다.

cell.getValue()Double 또는 String을 적절하게 반환합니다. 당신은 호출 전에 반환 의 종류를 확인해야합니다 toString

뭔가

Object value = cell.getValue(); 
if (value instanceof String) { 
    String s = (String) value; 
} 
if (value instanceof Double) { 
    Double d = (Double) value; 
} 

같은