0

我有一个智能表,我正在使用 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 中的数字数据吗?非常感谢。

4

1 回答 1

1

像 0.45 这样的小数不会在前面加上撇号,除非您将值显式设置为字符串。

cell.getValue()将根据需要返回DoubleString。您应该在调用之前检查返回的类型toString

就像是

Object value = cell.getValue();
if (value instanceof String) {
    String s = (String) value;
}
if (value instanceof Double) {
    Double d = (Double) value;
}
于 2017-12-18T18:30:05.670 回答