您现在的位置是:主页 > news > php网站后台入口/企业微信管理系统

php网站后台入口/企业微信管理系统

admin2025/6/27 18:41:05news

简介php网站后台入口,企业微信管理系统,软件设计网站,动易网站 首页模板修改/**POI中Excel文件单元格的类型 在读取每一个单元格的值的时候,通过getCellType方法获得当前单元格的类型,在Excel中单元格有6种类型,如下所示。 1)CELL_TYPE_BLANK:空值 2)CELL_TYPE_BOOLEAN&#xff1…

php网站后台入口,企业微信管理系统,软件设计网站,动易网站 首页模板修改/**POI中Excel文件单元格的类型 在读取每一个单元格的值的时候,通过getCellType方法获得当前单元格的类型,在Excel中单元格有6种类型,如下所示。 1)CELL_TYPE_BLANK:空值 2)CELL_TYPE_BOOLEAN&#xff1…

/**POIExcel文件单元格的类型

在读取每一个单元格的值的时候,通过getCellType方法获得当前单元格的类型,在Excel中单元格有6种类型,如下所示。

1CELL_TYPE_BLANK:空值

2CELL_TYPE_BOOLEAN:布尔型

3CELL_TYPE_ERROR: 错误

4CELL_TYPE_FORMULA:公式型一般模板中没有

5CELL_TYPE_STRING:字符串型

6CELL_TYPE_NUMERIC:数值型

如果单元格的TypeCELL_TYPE_NUMERIC时,还需要进一步判断该单元格的数据格式,因为它有可能是Date类型,在Excel中的Date类型也是以Double类型的数字存储的。Excel中的Date表示当前时间与190011日相隔的天数,所以需要调用HSSFDateUtilisCellDateFormatted方法,判断该单元格的数据格式是否是Excel Date类型。如果是,则调用getDateCellValue方法,返回一个Java类型的Date

 

因此读取Excel中单元格中的数据时,得判断单元格格式类型,这是我写的,参考一下:

 *

 */

private static String dogetCell(Cell cell) {String temp = "";if (cell == null) {return temp;}switch (cell.getCellType()) {case Cell.CELL_TYPE_STRING:return cell.getRichStringCellValue().getString();case Cell.CELL_TYPE_NUMERIC:if (DateUtil.isCellDateFormatted(cell)) {Date date = cell.getDateCellValue();DateFormat df = new SimpleDateFormat("yyyy-MM-dd");temp = df.format(date);} else {return String.valueOf(cell.getNumericCellValue());}case Cell.CELL_TYPE_FORMULA:cell.setCellType(Cell.CELL_TYPE_STRING);return cell.getStringCellValue();default:return temp;}	}

系统中有的都是这么写的

 

建议改成先判断cell是什么类型的在取值




错误写法:此方法是有些系统中获取excel中日期然后进行日期格式转换的方法
public static String dateFromExcel(Cell cell,ActionErrors errors) throws ParseException{Date date = null;DateFormat df = new SimpleDateFormat("yyyy-MM-dd");	String retDate = "";//没有判断单元格格式直接取值,会报错if(cell.getStringCellValue().trim().equals("")){return null;}//是否日期格式if(cell.getCellType() == Cell.CELL_TYPE_NUMERIC||cell.getCellType() ==Cell.CELL_TYPE_FORMULA ){if(org.apache.poi.ss.usermodel.DateUtil.isCellDateFormatted(cell)){double d = cell.getNumericCellValue();date = org.apache.poi.ss.usermodel.DateUtil.getJavaDate(d);}}else{cell.setCellType(Cell.CELL_TYPE_STRING);retDate = cell.getStringCellValue().trim();String[] monthStr;if(retDate.indexOf("/")>0){	monthStr = retDate.split("/");}else{monthStr = retDate.split("-");}String year = monthStr[0];String month = monthStr[1];String day = monthStr[2];if (month.length() == 1) {month = "0" + month;								}if (day.length() == 1) {day = "0" + day;								}retDate = year + "-" + month+"-"+day;date = df.parse(retDate);}			df.setLenient(false);if(date == null){logger.debug("日期格式不正确");errors.add("save", new ActionError("message.failer", "日期格式不正确!"));}retDate = df.format(date);return retDate;}