时间的单元格格式被视为一般

时间:2017-03-24 11:49:13

标签: excel epplus

如果我的单元格内容为文本:THYSS

然后我将该单元格格式化为Time并使用以下内容读取格式名称:

  

workSheet.Cells [rowNumber,start.Column] .Style.Numberformat.Format

返回字符串“[$ -F400] h:mm:ss \ AM / PM”

在单元格中显示THYSS。

在Fx栏中显示THYSS。

一切似乎都符合预期。

但是,如果我的单元格内容为:1.7063

然后我将该单元格格式化为Time并使用以下内容读取格式名称:

  

workSheet.Cells [rowNumber,start.Column] .Style.Numberformat.Format

返回字符串“General”

在单元格中显示16:57:04。 在Fx栏01/01/1900 16:57:04显示。

为什么回归将军?!?!?!?!?!?

我只是想确保要导入的电子表格没有任何格式的格式,如果它有格式,那么我需要通知用户更正它,我不能自动删除格式。

P.S。顺便提一下,如果我现在将格式设置为常规,则单元格内容现在神奇地变为1.7062962962963

1 个答案:

答案 0 :(得分:0)

这样的话可以解释我的意见

Public Function FormatRange(r As Excel.Range) As Variant

Dim x As Variant

On Error GoTo eHandle:

    If r.NumberFormat = "m/d/yyyy" Then
        x = CDate(r.Text)
    Else

    End If

Exit Function

eHandle:

    FormatRange = CStr(r.Value)
    r.Value = FormatRange
    r.NumberFormat = "General"


End Function