如何正确读取单个Excel单元格

时间:2015-02-15 10:08:46

标签: vb.net excel

过去几天我一直在谷歌中查找,但我仍然找不到合适的答案。

目前,我就是这样做的:

For Each cell In ws.Range(fromCol, toCol)
    If IsNothing(cell.Value) Then Exit For

    valueList.Push(cell.Value.ToString())
Next

但是当它读取假定数据类型为Time的cell时,它返回Double值。我尝试解析该值,但它与预期的不一样。

如何正确读取具有假定时间类型的单个Excel cell

1 个答案:

答案 0 :(得分:0)

根据文章的评论,

从某种意义上来说,

.Text是一个坏主意,它只会为您提供该单元格中显示的字符串。例如,如果对单元格的内容使用TypeName,则无论内容可能是什么数据类型,它都将始终返回字符串。但是,如果使用.Value,它将返回该单元格内容的实际数据类型名称。

如果您在比较中使用TypeName,这对您有用。它可以节省您使用转换功能。

举个例子:

Sub Test()
Range("A1") = "True"
Debug.print(TypeName(Range("A1").Value))
Debug.print(TypeName(Range("A1").Text))
End Sub 

此输出为:

Boolean
String