Comment vérifier si la valeur de la cellule est un nombre

Les cellules de la feuille de calcul Excel sont lues à l'aide de l'object Microsoft.Office.Interop.Excel. Je dois find le formatting des valeurs numériques et appliquer en conséquence. Par exemple, j'ai une valeur de 19.0000 mais quand il est lu Value2 sera "19" mais je dois le garder "19.0000"

Excel.Range sheetRange = xlWorksheet.Range["A1", lastCell]; var cell = sheetRange.Cells[row, col]; cell.Value2 == "19"; 

Il existe une propriété NumberFormat qui renvoie une string de formatting comme "0.0000" que je pourrais utiliser, mais je ne peux pas savoir comment vérifier si la valeur de la cellule est un nombre.

Un peu d'un hacky autour d'elle est d'append une apostrophe au début – excel ne tentera pas de le formater alors

par exemple var value = 19.0000; cell.value = "'" + value; var value = 19.0000; cell.value = "'" + value;

J'utilise cette fonction à cette fin:

  public static bool IsValidDecimalNumber(this ssortingng s) { if (ssortingng.IsNullOrWhiteSpace(s)) return false; //blank/null ssortingngs aren't valid decimal numbers return !s.Any(c => !(char.IsDigit(c) || c == '.')) && !(s.Count(c => c == '.') > 1); } 

Modifier: pour élaborer, il renvoie false s'il est vide / nul, puis il renvoie faux si aucun chiffre n'est un nombre ou un point décimal, et il renvoie false s'il y a plus d'une décimale. Sinon, il renvoie vrai.