The code below check if the first cell of an Excel file contains a date value. In Excel the cell type for date is returned as HSSFCell.CELL_TYPE_NUMERIC
, to make sure if it contains a date we can use a utility method DateUtil.isCellDateFormatted(Cell cell)
, this method will check if the cell value is a valid date.
package org.kodejava.poi;
import org.apache.poi.hssf.usermodel.HSSFCell;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.ss.usermodel.CellType;
import org.apache.poi.ss.usermodel.DateUtil;
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);
// Read a cell the first cell on the sheet.
HSSFCell cell = sheet.getRow(0).getCell(0);
if (cell.getCellType() == CellType.NUMERIC) {
System.out.println("Cell type for date data type is numeric.");
}
// Using HSSFDateUtil to check if a cell contains a date.
if (DateUtil.isCellDateFormatted(cell)) {
System.out.println("The cell contains a date value: "
+ cell.getDateCellValue());
}
} catch (FileNotFoundException e) {
e.printStackTrace();
}
}
}
The example result of the code snippet:
Cell type for date data type is numeric.
The cell contains a date value: Fri Oct 08 00:00:00 CST 2021
Maven Dependencies
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi</artifactId>
<version>5.2.5</version>
</dependency>
Latest posts by Wayan (see all)
- How do I get number of each day for a certain month in Java? - September 8, 2024
- How do I get operating system process information using ProcessHandle? - July 22, 2024
- How do I sum a BigDecimal property of a list of objects using Java Stream API? - July 22, 2024
I have both numeric cells and date cells in my spreadsheet. When I read then using POI, all of them are identified as Date type. How can I differentiate between numeric values and date values?
How to distinguish date and datetime cell?
How to validate that
Date
is correct?Hi Snehal,
The
DateUtil.isCellDateFormatted(cell)
throws exception if the excel’s cell contain invalid date value.