表格中的时间如果直接读取一般读取的数字,需要转换为时间格式,需要入下两步:
1、使用DateUtil类,有时不能自动导入,可能需要手动
import org.apache.poi.ss.usermodel.DateUtil;
import java.text.SimpleDateFormat;
import java.util.Date;
2、处理数据格式的单元格时,先判断是否为数字,若是再进行判断是否为时间,若是时间,则以指定格式处理,代码实现第12~19行
01|public Object formGetCellType(Cell cell){
02| Object value=null;
03| try{
04| if(cell.getCellType()==cell.CELL_TYPE_BLANK){
05| value="";
06| }else if(cell.getCellType()==cell.CELL_TYPE_BOOLEAN){
07| value=cell.getBooleanCellValue();
08| }else if(cell.getCellType()==cell.CELL_TYPE_ERROR){
09| value="";
10| }else if(cell.getCellType()==cell.CELL_TYPE_FORMULA){
11| value=cell.getCellFormula();
12| }else if(cell.getCellType()==cell.CELL_TYPE_NUMERIC){
13| if (DateUtil.isCellDateFormatted(cell)) {
14| Date tempValue = cell.getDateCellValue();
15| SimpleDateFormat simpleFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
16| value = simpleFormat.format(tempValue);
17| }else {
18| value = String.valueOf(cell.getNumericCellValue());
19| }
20| }else if(cell.getCellType()==cell.CELL_TYPE_STRING){
21| value=cell.getStringCellValue();
22| }else{
23| value=cell.getDateCellValue();
24| }
25| }catch(Exception e){
26| e.printStackTrace();
27| }
28| return value;
29|}
网友评论