In Excel, the date format, such as 2009-12-24 to convert it to a number format becomes 40171, in Java processing, the reading will be 40171.
If you use a POI to process a cell of a date type in Excel, you will end up with the numeric type if you are only judging whether it is a date type. The correct way to do this is to first determine the type of cell is otherwise numeric type, and then determine whether the cell is a date format, if so,
Create a date format, and then display the contents of the cell in this date format. If the cell is not a date format, then it is OK to get the numeric value directly. The specific code is as follows:
The main is to Judge NUMERIC when a colleague determines whether the cell is a date format if the date format is converted directly into a date format string return value
It's OK.
| 12345678910111213141516171819202122 |
if (0 = = cell. Getcelltype()) { //Determine if the date typeif(hssfdateutil. iscelldateformatted(cell)){ //For conversion to date formatDate d = cell. Getdatecellvalue(); dateformat formater = new simpledateformat("Yyyy-mm-dd HH:mm:ss" ); str[k] = formater. Format(d); }Else{ //For formatting numbers, leaving only the integer part of the number decimalformat df = new decimalformat("########"); str[k] = df. Format(cell. Getnumericcellvalue()); } |
Processing date format When Java imports Excel (verified OK)