从Excel表格中读取的值错误

从Excel表格中读取的值错误,excel,vb.net,Excel,Vb.net,我想看一下时间表。不幸的是,这不起作用。程序读取并显示0.16,而不是B1处的“3:53”。我该如何改进这一点? 我正在使用Microsoft.Office.Interop。 我已经尝试更改表中的格式,但没有效果 Private xlApp As Excel.Application = New Excel.Application Private xlWorkBook As Excel.Workbook 'in a Sub: xlWorkBook = xlApp.Workbooks.Open(fi

我想看一下时间表。不幸的是,这不起作用。程序读取并显示
0.16,而不是B1处的
“3:53”
。我该如何改进这一点? 我正在使用
Microsoft.Office.Interop
。 我已经尝试更改表中的格式,但没有效果

Private xlApp As Excel.Application = New Excel.Application
Private xlWorkBook As Excel.Workbook
'in a Sub:
xlWorkBook = xlApp.Workbooks.Open(filepath)
 Dim xlWorkSheet As Excel.Worksheet = CType(xlWorkBook.Worksheets("L7"), Excel.Worksheet)
        Dim xlRange As Excel.Range = xlWorkSheet.UsedRange
        Dim ER As Excel.Range
        Dim ER2 As Excel.Range
        Dim Index As Integer = 0
        For Zeile As Integer = 1 To xlRange.Rows.Count
            ER = CType(xlRange.Cells(Zeile, 1), Excel.Range)
            ER2 = CType(xlRange.Cells(Zeile, 2), Excel.Range)
            If CStr(ER2.Value) = "..." Then
                Continue For
            End If
        Dim gesplittet As String() = CStr(ER2.Value).Split(":"c)
'...
ER.Value
变为0.16而不是“3:53”。我想要一根绳子


时间和日期值通常以完全不同的方式存储在电子表格和数据库程序中。因此,当您获得原始值时,您永远不会直接获得您看到的值。在您的例子中,您似乎得到了一个时间/日期值:日期是点之前的值,小数位数是24小时一天的分数

0.16 * 24 = 3.84 hours
这意味着3小时和1小时的0.84:

0.84 * 60 = 50.4 minutes

我假设与预期值的微小差异是因为值0.16是四舍五入值。使用准确的数值并进行计算,应该可以得到预期的结果。

非常感谢。当我想到这个问题时,我也只是把它发了出去,只是把它格式化为时间
0.16180555556
是Excel存储
3:53
的方式发布的最后一行代码表示您正在从时间值中提取小时/分钟信息。格式为“时间”的Excel单元格将被检索为双数据类型,正如您所发现的那样。可以使用将此值转换为日期时间结构(仅工作簿中的“精确”未设置为使用1904日期系统)。然后可以从DateTime结构访问小时/分钟属性。