在Excel中的日期格式,比如2009-12-24將其轉化為數字格式時變成了40171,在用java處理的時候,讀取的也將是40171。
如果使用POI處理Excel中的日期類型的單元格時,如果僅僅是判斷它是否為日期類型的話,最終會以NUMERIC類型來處理。正確的處理方法是先判斷單元格的類型是否則NUMERIC類型,然后再判斷單元格是否為日期格式,如果是的話,
創建一個日期格式,再將單元格的內容以這個日期格式顯示出來。如果單元格不是日期格式,那么則直接得到NUMERIC的值就行了。具體代碼如下:
主要是判斷 NUMERIC 的時候 同事判斷下 單元格是不是日期格式 如果是 日期格式直接 轉成日期格式字符串返回值
就ok 了。。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
|
if (0 == cell.getCellType()) {
//判斷是否為日期類型
if(HSSFDateUtil.isCellDateFormatted(cell)){
//用於轉化為日期格式
Date d = cell.getDateCellValue();
DateFormat formater = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
str[k] = formater.format(d);
}else{
// 用於格式化數字,只保留數字的整數部分
DecimalFormat df = new DecimalFormat("########");
str[k] = df.format(cell.getNumericCellValue());
}
|