使用 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 一个 Double
或 String
视情况而定。您应该在 return 调用 toString
之前检查 return 的类型
类似
Object value = cell.getValue();
if (value instanceof String) {
String s = (String) value;
}
if (value instanceof Double) {
Double d = (Double) value;
}
我有一个智能表,我正在使用 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 一个 Double
或 String
视情况而定。您应该在 return 调用 toString
类似
Object value = cell.getValue();
if (value instanceof String) {
String s = (String) value;
}
if (value instanceof Double) {
Double d = (Double) value;
}