下面的代码检查Excel文件的第一个单元格是否包含日期值。在Excel中,日期的单元格类型返回为HSSFCell.CELL_TYPE_NUMERIC,以确保它是否包含日期,我们可以使用实用程序方法HSSFDateUtil.isCellDateFormatted(HSSFCell cell),该方法将检查单元格值是否为有效日期。
package org.nhooo.example.poi; import org.apache.poi.hssf.usermodel.HSSFCell; import org.apache.poi.hssf.usermodel.HSSFDateUtil; import org.apache.poi.hssf.usermodel.HSSFSheet; import org.apache.poi.hssf.usermodel.HSSFWorkbook; import org.apache.poi.ss.usermodel.CellType; import java.io.FileInputStream; import java.io.FileNotFoundException; public class DateCellType { public static void main(String[] args) throws Exception { String filename = "datecelltype.xls"; try (FileInputStream fis = new FileInputStream(filename)) { HSSFWorkbook workbook = new HSSFWorkbook(fis); HSSFSheet sheet = workbook.getSheetAt(0); // 读取工作表上的第一个单元格。 HSSFCell cell = sheet.getRow(0).getCell(0); if (cell.getCellType() == CellType.NUMERIC) { System.out.println("Cell type for date data type is numeric."); } // 使用HSSFDateUtil检查单元格是否包含日期。 if (HSSFDateUtil.isCellDateFormatted(cell)) { System.out.println("The cell contains a date value: " + cell.getDateCellValue()); } } catch (FileNotFoundException e) { e.printStackTrace(); } } }
代码段的示例结果:
Cell type for date data type is numeric. The cell contains a date value: Tue Jul 23 00:00:00 WITA 2019
Maven依赖
<!-- https://search.maven.org/remotecontent?filepath=org/apache/poi/poi/4.1.0/poi-4.1.0.jar --> <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi</artifactId> <version>4.1.0</version> </dependency>