This is the safest and most concise way I see as of POI 3.1.7 up to POI 4:
boolean isBlankCell = CellType.BLANK == cell.getCellTypeEnum();
boolean isEmptyStringCell = CellType.STRING == cell.getCellTypeEnum() && cell.getStringCellValue().trim().isEmpty();
if (isBlankCell || isEmptyStringCell) {
...
As of POI 4 getCellTypeEnum()
will be deprecated if favor of getCellType()
but the return type should stay the same.