I am using this block of code to get cell.getCellStyle().getDataFormat() . It changes it's values after adding or removing content from xlsx. What should be done in this case?
First cell 21/01/2016 returns cell.getCellStyle().getDataFormat() retuns 14 when I add some extra rows then cell.getCellStyle().getDataFormat() returns 165
if (DateUtil.isCellDateFormatted(cell)) {
double val = cell.getNumericCellValue();
Date date = DateUtil.getJavaDate(val);
String dateFmt = null;
System.out.println(cell.getCellStyle().getDataFormat());
XSSFCellStyle style = (XSSFCellStyle) cell.getCellStyle();
System.out.println("In INT: "+style.getDataFormat());
if (cell.getCellStyle().getDataFormat() == 14) {
System.out.println("14");
dateFmt = "dd/mm/yyyy";
} else if(cell.getCellStyle().getDataFormat() == 165) {
System.out.println("165");
dateFmt = "m/d/yy";
} else if(cell.getCellStyle().getDataFormat() == 166) {
System.out.println("166");
dateFmt = "d-mmm-yy";
} else if(cell.getCellStyle().getDataFormat() == 167) {
System.out.println("167");
dateFmt = "mmmm d yyyy ";
} else if(cell.getCellStyle().getDataFormat() == 168) {
System.out.println("168");
dateFmt = "m/d/yyyy";
} else if(cell.getCellStyle().getDataFormat() == 169) {
System.out.println("169");
dateFmt = "d-mmm-yyyy";
} else {
dateFmt = cell.getCellStyle().getDataFormatString();
}
System.out.println("dateFmt "+dateFmt);
value = new CellDateFormatter(dateFmt).format(date);
System.out.println("Date "+value);
}