使用Smartsheet Cell.getValue()读取数字

时间:2017-12-18 14:46:49

标签: smartsheet-api smartsheet-java-sdk-v2

我有一张智能表,我正在使用Java读取数据。其中一列包含TEXT_NUMBER数据,没有其他格式。我正在使用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 double和Double解析。

请有人建议如何处理Smartsheet Cell中的数字数据?非常感谢。

1 个答案:

答案 0 :(得分:1)

像0.45这样的小数将有一个前撇号,除非你明确地将值设置为String。

cell.getValue()会根据需要返回DoubleString。您应该在调用toString

之前检查返回的类型

这样的东西
Object value = cell.getValue();
if (value instanceof String) {
    String s = (String) value;
}
if (value instanceof Double) {
    Double d = (Double) value;
}