问题描述
尝试使用 Apache POI 从Java解析Excel时,我发疯了,我发现解析包含日期的特定列时遇到以下问题。
这是我的Excel文件中的列:
如您所见,此列包含日期字段,但此列的某些单元格包含数字值,另一些单元格包含 text 值(我可以使用 TYPE() Excel函数)。我真的不知道怎么可能,因为所有单元格都包含日期字段。有想法吗?
无论如何,我正在尝试以这种方式处理这种奇怪的情况:
if(currentRow.getCell(20) != null && !currentRow.getCell(20).toString().trim().isEmpty()) {
if(currentRow.getCell(20).getCellType().toString().equals("STRING")) {
System.out.println("Data sottoscrizione contratto è STRING: " + currentRow.getCell(20).toString());
}
else if(currentRow.getCell(20).getCellType().toString().equals("NUMERIC")) {
System.out.println("Data sottoscrizione contratto è NUMERIC");
String dateAsString = currentRow.getCell(20).toString();
System.out.println("DATA SOTTOSCRIZIONE CONTRATTO: " + currentRow.getCell(20).toString());
}
}
通过这种方式,我可以处理试图转换为日期的两种情况。
这是我的问题。当找到Excel数值时,请输入if NUMERIC 情况
并通过以下方式打印单元格值:
System.out.println("DATA SOTTOSCRIZIONE CONTRATTO: " + currentRow.getCell(20).toString());
我获得了与日期值 2017/10/10
相关的值 2017年6月16日这里有一些疑问:为什么我会以这种格式获取类似 2017/10/16 的信息。
2017年6月16日应为日期的意大利语格式。如何将其转换为适当的Date对象?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)