0

Excel スプレッドシートのセルは、Microsoft.Office.Interop.Excel オブジェクトを使用して読み取られます。数値のフォーマットを見つけて、それに応じて適用する必要があります。たとえば、値は 19.0000 ですが、それを読み取ると Value2 は「19」になりますが、「19.0000」のままにしておく必要があります。

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

使用できる「0.0000」のような書式設定文字列を返す NumberFormat プロパティがありますが、セル値が数値かどうかを確認する方法がわかりません。

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);
    }

編集:詳しく説明すると、空白/nullの場合はfalseを返し、数字または小数点でない場合はfalseを返し、小数点が複数ある場合はfalseを返します。それ以外の場合は true を返します。

于 2016-07-29T14:42:44.747 に答える
0

少しハックな方法は、先頭にアポストロフィを追加することです-Excelはそれをフォーマットしようとしません

例えば var value = 19.0000; cell.value = "'" + value;

于 2016-07-29T14:31:59.313 に答える