Java poi3.17 如何区分获取日期类型的单元格的值

 

1、网上看了好多方案,似乎都没有效果。

2、解决方法:(补充:后来发现这种方法,还是不太行。)

最后采取了这种方式来校验,如果不是Date类型的话,就会转失败!

 

try{
							DateFormat inputFormat = new SimpleDateFormat("M/d/yy");
							DateFormat outputFormat = new SimpleDateFormat("yyyy-MM-dd");
							Date date = inputFormat.parse(colTxt);
							colTxt = outputFormat.format(date);
						}catch (Exception e){
							System.out.println("格式异常:"+e.getMessage());
						}

 

  

 

如果是日期类型的单元格,index 是等于3的。

但是我偶尔到的情况,不是等于日期类型,也会等于3,这时获取

Date date = cell.getDateCellValue(); 值会报错,
解决方法,就是用try/catch包起来,继续使用dataForMatter.formatCellValue(cell); 获取的值就可以了

colTxt = dataForMatter.formatCellValue(cell);
							CellStyle cellStyle = cell.getCellStyle();
							if(cellStyle != null){
								short index = cell.getCellStyle().getIndex();
								if( index == 3){
									try{
										Date date = cell.getDateCellValue();
										if(date != null){
											colTxt = DateUtil.format(date,DateUtil.DEFAULT_FORMAT_DATE);
										}
									}catch (Exception e){
										e.printStackTrace();
									}
								}
							}

  

 

posted @ 2024-08-08 11:39  信铁寒胜  阅读(19)  评论(0编辑  收藏  举报