我有一张智能表,我正在使用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中的数字数据?非常感谢。
答案 0 :(得分:1)
像0.45这样的小数将不有一个前撇号,除非你明确地将值设置为String。
cell.getValue()
会根据需要返回Double
或String
。您应该在调用toString
像
这样的东西Object value = cell.getValue();
if (value instanceof String) {
String s = (String) value;
}
if (value instanceof Double) {
Double d = (Double) value;
}