我正在使用POI在现有电子表格中创建新的单元格行。 POI允许您获取列默认样式,但是没有等效(尽可能接近我)可以获得默认类型。我从我的用户界面获取一个String,我不知道如何设置单元格类型。如果字符串是double,那么很好,那就是NUMERIC。但是如果String指定了一个日期,我怎样才能最好地检测它,以便它也被设置为NUMERIC?日期有一些格式类型,从单元格样式格式中检测类型是不切实际的。 POI是否支持基于格式解析的方法?
答案 0 :(得分:0)
设置您使用的单元格类型:
setCellType()
如文档中所述:
https://poi.apache.org/apidocs/
setCellType void setCellType(int cellType)设置单元格类型(数字,公式或字符串)。如果单元格当前包含值, 如果可能,将转换该值以匹配新类型。 但是,格式化通常会在此过程中丢失。
如果您要做的是获取数值单元格的String值, 停!。这不是这样做的方法。相反,用于获取字符串 数字或布尔或日期单元格的值,请改用DataFormatter。
抛出:java.lang.IllegalArgumentException - 如果指定的单元格 类型无效java.lang.IllegalStateException - 如果是当前值 无法转换为新类型请参阅:CELL_TYPE_NUMERIC, CELL_TYPE_STRING,CELL_TYPE_FORMULA,CELL_TYPE_BLANK, CELL_TYPE_BOOLEAN,CELL_TYPE_ERROR