使用excel匯入功能時日期資料變成數字的解決

2021-10-10 16:21:13 字數 1280 閱讀 7500

在使用excel匯入功能的時候,難免會匯入日期型別的資料,這個時候無論使用easyexcel還是poi的匯入方式,都有可能出現純數字的日期。

1、如果輸入的日期是2023年之前的,則不會變成純數字;

2、如果是2023年之後的日期,則在匯入的時候可能會變成數字:

從這張圖裡面就能看出來原因:excel解析時間型別的資料的時候把日期轉成文字型別了。

那麼這個數字代表什麼呢?

這個數字與上面提到的2023年相關,因為excel中的時間是從2023年開始的,而轉換成文字型別的數字則代表著2023年之後的n天,知道這個原理之後,就很好解決這個問題了:

1)如果是正常的時間型別則進行日期轉換(2023年之前日期是正常的文字型別);

2)如果是純數字則進行日期的加法運算。

這個時候需要注意一點的是:1900-02-29這一天是不存在的,但是在excel中是可以輸入並轉換成數字的,所以需要特殊處理一下,整體處理的**如下:

private string judgememberbirthday

(memberinfo member)

//日期轉換格式

******dateformat sdf =

new******dateformat

("yyyy-mm-dd");

//將字串日期進行格式化,如果出現異常,說明不是日期格式的

datetimeformatter df = datetimeformatter.

ofpattern

("yyyy-m-d");

localdate date = localdate.

parse

(member.

getbirthday()

, df)

; member.

setbirthday

(date)

;return null;

}catch

(exception e)

member.

setbirthday

(localdate)

;return null;

}else

if(integer.

valueof

(member.

getbirthday()

)<60)

else

}else

}}

java匯入excel日期資料

在使用poi解析excel檔案時,會發現,中的日期解析出來是乙個數字,如下 我們期望這個日期解析出來是 2015 8 21,而結果卻是42237.什麼原因呢?這個數字是什麼呢?是以1900年為原點,到2015年8月21日,之間經過的天數。解決方案 將數字作為天數加在1900,01,01上 impor...

Excel匯入功能

匯入excel內容 首先批量插入資訊 boolean f service.insertxzxk m 查出資訊。list listall service.queryxzxklist m,false 對比兩個list excel中的資料在list存在表示成功,不存在表示失敗,失敗的放到error裡面 l...

oracle匯入檔案時,日期格式問題

oracle匯入檔案時,日期格式問題 load data infile iot opthb tibs home xcx test loadfile.txt truncate into table zhicai record tmp fields terminated by trailing null...