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的页眉和页脚的方法及示例代码