Zgodnie z dokumentacją Cell.getCellStyle() nigdy nie zwróci wartości null.
https://poi.apache.org/apidocs/org/apache/poi/ss/usermodel/Cell.html#getCellStyle()
Kiedy nie styl komórka została jawnie ustawiona na komórki to powróci domyślny styl komórki, który początkowo jest współdzielony przez wszystkie komórki w skoroszycie. Zmiana tego będzie miała oczywiście wpływ na wszystkie komórki, które nie mają wyraźnie przypisanego stylu.
Musisz utworzyć nowy CellStyle, a następnie przypisać go do odpowiednich komórek.
Od przewodnika dewelopera POI:
https://poi.apache.org/spreadsheet/quick-guide.html#CreateDateCells
Workbook wb = new HSSFWorkbook();
//Workbook wb = new XSSFWorkbook();
CreationHelper createHelper = wb.getCreationHelper();
Sheet sheet = wb.createSheet("new sheet");
// Create a row and put some cells in it. Rows are 0 based.
Row row = sheet.createRow(0);
// Create a cell and put a date value in it. The first cell is not styled
// as a date.
Cell cell = row.createCell(0);
cell.setCellValue(new Date());
// we style the second cell as a date (and time). It is important to
// create a new cell style from the workbook otherwise you can end up
// modifying the built in style and effecting not only this cell but other cells.
CellStyle cellStyle = wb.createCellStyle();
cellStyle.setDataFormat(
createHelper.createDataFormat().getFormat("m/d/yy h:mm"));
cell = row.createCell(1);
cell.setCellValue(new Date());
cell.setCellStyle(cellStyle);
//you can also set date as java.util.Calendar
cell = row.createCell(2);
cell.setCellValue(Calendar.getInstance());
cell.setCellStyle(cellStyle);
// Write the output to a file
FileOutputStream fileOut = new FileOutputStream("workbook.xls");
wb.write(fileOut);
fileOut.close();
dzięki. Zmarnowałem 5 godzin nad tym. Uratowałeś ten dzień. –