2017-12-18 8 views
0

私はJavaを使用してデータを読み込んでいるスマートシートを持っています。列の1つにTEXT_NUMBERデータが追加の書式なしで含まれています。私はCell.getValue()を使用してこのセルの内容を取得しています。Smartsheetで数字を読むCell.getValue()

私の問題は、セルに含まれるものを先験的に知らないことです。テキストまたは数字(全体または小数部分)を含む可能性があります。場合によっては、小数部分が0.45のようになることもあります。この場合、Smartsheetは内部的にテキストにアポストロフィを付加します。これは私がテキスト部分を読んでいるかである -

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

これは、テキストコンテンツのために非常にうまく動作しますが、cell.getValueは()数値の0.0を返します。スマートシートから数値データを取得する方法がわかりません。

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

をしかし、これは、私はJavaのダブルとダブルの解析で扱ってるライン、ダウン失敗します - しかし今のところ、私は少しハックを使用しています。

Smartsheet Cellで数値データを処理する方法についてアドバイスできますか?本当にありがとう。

答えて

1

小数点以下は0.45になります。ではなく、には、値を文字列として明示的に設定しない限り、アポストロフィが先頭に付きます。

cell.getValue()DoubleまたはStringなどの適切なを返します。あなたは

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

何かを呼び出す前に復帰の種類を確認する必要があります

関連する問題