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

Reading numerals with Smartsheet Cell.getValue()

我有一个智能表,我正在使用 Java 从中读取数据。其中一列包含 TEXT_NUMBER 数据,没有其他格式。我正在使用 Cell.getValue() 来获取此单元格的内容。

我的问题是,我事先不知道单元格包含什么 - 它可能包含文本或数字(整数或小数)。有时小数可能像 0.45,在这种情况下,Smartsheet 会在内部为文本添加一个撇号。这就是我阅读文本部分的方式 -

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

这对于文本内容非常有效,但 cell.getValue() returns 0.0 对于数字。我不知道如何从智能表中获取数字数据。不过目前,我正在使用一些技巧 -

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

但这会失败,我正在处理 Java 双重和双重解析。

拜托,有人可以建议如何处理 Smartsheet Cell 中的数字数据吗?非常感谢。

像 0.45 这样的小数 不会 有撇号前缀,除非您明确地将值设置为字符串。

cell.getValue() 将 return 一个 DoubleString 视情况而定。您应该在 return 调用 toString

之前检查 return 的类型

类似

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