[英]Reading from Excel table gives wrong value
我想从时间表中读取。 不幸的是,这不起作用。 程序读取并显示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 小时和 0.84 小时:
0.84 * 60 = 50.4 minutes
我认为与您的预期值的微小差异是因为值 0.16 是一个四舍五入的值。 使用准确的值并执行计算应该可以得到预期的结果。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.