【问题标题】:VB.Net - Excel application get showing values of an rangeVB.Net - Excel 应用程序获取显示范围的值
【发布时间】:2013-03-09 22:50:12
【问题描述】:

我正在尝试使用 Vb.Net 获取 Excel 范围并复制到对象数组中。

这不是问题。我使用以下代码:

Dim vValues(,) As Object = ExcelApp.Range(vRange).Value

而且工作正常;但我有以下情况:

在“C”列中;该值具有特定格式,并且在内部具有另一个值。

我的问题是:

有人知道如何获得与用户看到的完全相同的信息吗?

我试图在不使用For ... Each 或某种循环的情况下获取信息。

我也尽量避免使用“文本到列”功能。

两者似乎都是正确的解决方案,但会影响大量数据的性能。

仅供参考:我也可以通过 ODBC 连接获取信息;但我正在使用范围搜索解决方案

【问题讨论】:

    标签: arrays vb.net visual-studio excel range


    【解决方案1】:

    用户看到的正是Text 属性。但是你不能有一个数组,你必须单独查询每个单元格。

    您在数组中获得了 Double 值而不是 DateTime 值,因为您在 Excel 中应用了“时间”格式。如果您有来自“日期”类别的格式,Excel 将改为发送正确的 Variant/Date,而不是代表它的 Double

    另一个选项是 .NET 端的 constructing the DateTime objects,前提是您知道它们应该在哪些列中。

    【讨论】:

    • 没错。在任何情况下;我想创建一个通用方法来获取 Excel Range 并转换为 DataTable;那么,我不想评估这些异常情况。我认为最好的方法是将所有列转换为文本,使用“文本到列”功能
    猜你喜欢
    • 1970-01-01
    • 2017-09-20
    • 2014-11-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-02-08
    相关资源
    最近更新 更多