0

使用 Microsoft.Office.Interop.Excel 对象读取 Excel 电子表格的单元格。我需要找出数字值的格式并相应地应用。例如我有 19.0000 的值,但是当它被读取时 Value2 将是“19”但是我需要保持它“19.0000”

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

有一个 NumberFormat 属性返回我可以使用的格式字符串,如“0.0000”,但我不知道如何检查单元格值是否为数字。

4

2 回答 2

0

我为此目的使用此功能:

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

编辑:详细地说,如果它是空白/空,则返回 false,如果任何数字不是数字或小数点,则返回 false,如果小数点超过一个,则返回 false。否则,它返回真。

于 2016-07-29T14:42:44.747 回答
0

一个有点老套的方法是在开头添加一个撇号 - 然后excel不会尝试格式化它

例如 var value = 19.0000; cell.value = "'" + value;

于 2016-07-29T14:31:59.313 回答