使用smartsheet cell.getValue()读取数字



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

我的问题是,我不知道单元格所包含的内容 - 它可能包含文本或数字(全部或小数分数)。有时,小数分数可能大约为0.45,在这种情况下,SmartSheet在内部会预留文本的撇号。这就是我正在阅读文本部分的方式 -

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

这对于文本内容非常有效,但是Cell.GetValue()返回0.0的数字。我不知道如何从SmartSheet获取数字数据。目前,我正在使用一些黑客 -

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

,但这将使我在java double和double解析的地方失败。

请,有人可以建议如何处理SmartSheet单元格中的数字数据吗?非常感谢。

像0.45这样的小数具有postrophe的预读,除非您将值明确将值设置为字符串。

cell.getValue()将适当地返回DoubleString。您应该在调用toString

之前检查返回的类型

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

最新更新