开发手册 欢迎您!
软件开发者资料库

Java POI读取Excel文件中时间日期(date)和数据的方法及示例代码

本文主要介绍Java中,使用POI读取Excel文件中时间日期及其它格式的数据的方法,以及相关的示例代码。

1、安装引用Apache POI

Maven中pom.xml添加如下:


org.apache.poi
poi
4.0.1


org.apache.poi
poi-ooxml
4.0.1

2、读取Excel中时间日期数据

InputStream inputStream = new FileInputStream("D://test.xlsx");XSSFWorkbook wb = new XSSFWorkbook(inputStream);Sheet sheet = wb.getSheetAt(0);Cell cell = sheet.getRow(0).getCell(0);// 获取第一行第一列的单元格if (cell != null){    if (cell.getCellTypeEnum() != CellType.STRING && HSSFDateUtil.isCellDateFormatted(cell))    {        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");        Date date = HSSFDateUtil.getJavaDate(cell.getNumericCellValue());        String value = sdf.format(date);        System.out.println(value);    }}wb.close();

3、读取Excel中其它数据

//1.使用流读取文件FileInputStream fileInputStream =        new FileInputStream(new File("C:\\Users\\KingHao\\Desktop\\poiTest.xlsx"));//2.使用 xssf 创建 workbookXSSFWorkbook excel = new XSSFWorkbook(fileInputStream);//3.根据索引获取sheetXSSFSheet sheet = excel.getSheetAt(0);//4.遍历rowfor (Row row:sheet){    System.out.println(row);    for (Cell cell:row){        switch (cell.getCellType()){            //判断读取的数据中是否有String类型的            case Cell.CELL_TYPE_STRING:                System.out.println(cell.getStringCellValue());                break;            case Cell.CELL_TYPE_NUMERIC:                /*                判断是否读取到了日期数据:                如果是那就进行格式转换,否则会读取的科学计数值                不是就输出number 数字                 */                if (HSSFDateUtil.isCellDateFormatted(cell)){                    Date date = cell.getDateCellValue();                    //格式转换                    SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");                    String format = sdf.format(date);                    System.out.println(format);                }else {                    System.out.println(cell.getNumericCellValue());                }                break;        }    }}excel.close();

或者

switch(cell.getCellType()) {    case Cell.CELL_TYPE_STRING:        System.out.print(cell.getStringCellValue() + "\t\t");        break;    case Cell.CELL_TYPE_NUMERIC:        if (DateUtil.isCellDateFormatted(cell)) {            SimpleDateFormat dateFormat = new SimpleDateFormat("dd-MM-yyyy");            System.out.print(dateFormat.format(cell.getDateCellValue()) + "\t\t");        } else {            System.out.print(cell.getNumericCellValue() + "\t\t");        }        break;    case Cell.CELL_TYPE_BOOLEAN:        System.out.print(cell.getBooleanCellValue() + "\t\t");        break;}

相关文档:

Java 使用POI填充Word表格内容和复制模板行属性方法示例代码

Java 使用POI操作Word的页眉和页脚的方法及示例代码

Java 使用Apache POI常用操作word的方法及示例代码