获取单元格.... other lines ....
-vmargs
... other arguments
-Dosgi.configuration.area=/directory/directory1/eclipse.eclipse
的正确方法是什么?CellFormatType
,DATE
,NUMBER
,TEXT
)?
GENERAL
返回一个Short值,它不会映射到上面的常量。
由于以下原因,我不能只使用cell.getCellStyle.getDataFormat()
。对于某些行,值前面可能会有cell.getCellType
或<>
之类的字符串前缀。在这种情况下,>
将返回getCellType
。因此,获取基础类型的唯一方法似乎是查看列的格式。
由于
答案 0 :(得分:3)
我不知道从Cell
到CellFormatType
的直接路线,但有多种方法可以确定特定类型:
getDataFormat
将为0(或更可靠,getDataFormatString
将为“常规”)CELL_TYPE_STRING
,但由于您说您无法执行此操作(请参阅下面的评论),您还可以尝试检查getDataFormatString
是否为“@”或“text”(两者都是纯文本的可能性)CELL_TYPE_NUMERIC
。请注意,日期也被视为数字,因此请先检查日期。(如果单元格类型为CELL_TYPE_FORMULA
,则应检查getCachedFormulaResultType
由于以下原因,我不能只使用cell.getCellType。对于某些行,可能有一个字符串前缀,如&lt;&gt;或者&gt;在值
之前
我不熟悉这个问题。也许你有一个自定义格式,它在数字之前加上字符?关于上面的文本检测我的注释可能对你有帮助,但是我建议你仔细检查你的电子表格实际上是否有相关的信息(即重新打开工作表时不只是Excel很聪明):记录单元格键入,格式化和格式化字符串,并确认相关单元格确实存在差异。您的单元格可能实际上被保存为文本,没有区别标记。在这种情况下,您需要为特定场景添加一些特殊的启发式方法。
最后,因为您似乎对来自CellStyle.getDataFormat
的返回值感到困惑;它只是表单索引→格式字符串表中的索引。您可以(我通常应该说)使用getDataFormatString
直接获取字符串格式。 BuiltinFormats中列出了标准单元格格式,您可以将其用作参考,以查看可能找到的格式字符串(但始终检查格式字符串,而不是ID,否则您将无法正确检测自定义格式)。