code: private String extractCellData(Row row, int iCurrent) throws Exception
      {
          Cell cell = (Cell) row.getCell(iCurrent);
          if (cell == null)
          {
              return "";
          }
          else
          {
              switch (cell.getCellType())
              {
              case HSSFCell.CELL_TYPE_NUMERIC:
                  double value = cell.getNumericCellValue();
                  if (HSSFDateUtil.isCellDateFormatted(cell))
  
                  {
                      if (HSSFDateUtil.isValidExcelDate(value))
                      {
                          Date date = HSSFDateUtil.getJavaDate(value);
                          SimpleDateFormat dateFormat = new SimpleDateFormat(JAVA_TOSTRING);
                          return dateFormat.format(date);
                      }
                      else
                      {
                          throw new Exception("Invalid Date value found at row number " + row.getRowNum()
                                  + " and column number " + cell.getColumnIndex());
                      }
                  }
                  else
                  {
                      return value + "";
                  }
              case HSSFCell.CELL_TYPE_STRING:
                  return cell.getStringCellValue();
              case HSSFCell.CELL_TYPE_BLANK:
                  return null;
              default:
                  return null;
              }
          }
      }
docs: /*
  Read a cell for specific column.