public string ExtractDateString(int rowIndex, int columnIndex)
        {
            var xf = 0;
              var v = _xls.GetCellValue(rowIndex, columnIndex, ref xf);

              var exception = new FlexCelExtractionException(_xls.ActiveSheet, rowIndex, columnIndex)
              {
            FileSpec = _xls.ActiveFileName
              };

              if (v == null) {
            throw exception;
              }

              var vType = v.GetType();
              var vTypeCode = Type.GetTypeCode(vType);
              exception.Type = vType;

              if (vTypeCode != TypeCode.Double) {
            throw exception;
              }

              DateTime date;

              if (FlxDateTime.TryFromOADate((double) v, false, out date)) {
            return date.ToString("M/d/yyyy");
              }

              exception.Type = date.GetType();
              throw exception;
        }
        public double ExtractDouble(int sheetIndex, int rowIndex, int columnIndex)
        {
            var xf = 0;
              var val = CheckDouble(_xls.GetCellValue(sheetIndex, rowIndex, columnIndex, ref xf));

              if (val != null) return val.Value;

              var exception = new FlexCelExtractionException(sheetIndex, rowIndex, columnIndex)
              {
            FileSpec = _sourcePath,
            Type = typeof (double)
              };

              throw exception;
        }