VB中如何读取Excel中的数据

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了VB中如何读取Excel中的数据相关的知识,希望对你有一定的参考价值。

public sub form_load()

dim n_shuzi as integer
Dim xlapp As Excel.Application
Dim xlbook As Excel.Workbook
Dim xlsheet As Excel.Worksheet
Dim shuzu(3) As Integer
Dim n_shuzi As Integer
Public f_row As Integer
Public m_row As Integer

xlapp = New Excel.Application
xlbook = xlapp.Workbooks.Open(“D:\123.clsx”)
xlapp.Visible = True
xlsheet = xlbook.Worksheets("Sheet1")
n_shuzi = xlsheet.Cells(1, 1)
For f_row = 0 To 3
shuzu(f_row) = xlsheet.Cells(f_row + 1, 1)
Next

如上面所示程序 从123.xlsx中读取数据 写入数组中 把cells(1,1)的数值赋给参数n_shuzi,即就是n_shuzi=xlsheet.cells(1,1)到这快就会出现
InvalidCastException was unhandled 这是什么错误?请大师帮忙解决

参考技术A xlbook = xlapp.Workbooks.Open(“D:\123.clsx”)和你说明中的123.xlsx文件名不同,检查一下,确保文件确实存在。
InvalidCastException 是 无效类型转换异常,用n_shuzi = xlsheet.Cells(1, 1).value试试。追问

大师 问题解决了 谢谢啊 还是使用最后一句加上.value 嘿嘿 3Q

追答

不客气,能得到正解就好。

参考技术B     Public f_row As Integer
    Public m_row As Integer

Private Sub Command1_Click()
Dim n_shuzi As Integer
 Dim xlapp As Excel.Application
    Dim xlbook As Excel.Workbook
    Dim xlsheet As Excel.Worksheet
    Dim shuzu(3) As Integer

Set xlapp = New Excel.Application
        Set xlbook = xlapp.Workbooks.Open("c:\\1.xls")
        xlapp.Visible = True
        Set xlsheet = xlbook.Worksheets("Sheet1")
        n_shuzi = Val(xlsheet.Cells(1, 1))
        For f_row = 0 To 3
            shuzu(f_row) = Val(xlsheet.Cells(f_row + 1, 1))
        Next
        
End Sub

追问

改成上面你说的之后 n_shuzi=val(xlsheet.cells(1,1))还是报Argument 'Expression' cannot be converted to type 'Range'.这个错误 我把改成n_shuzi=val(“xlsheet.cells(1,1)")后不报错了 但是n_shuzi就是没有值 我Excel表格中给A1的值是2,大师为什么?

本回答被提问者采纳
参考技术C shuzu(f_row) = val(xlsheet.Cells(f_row + 1, 1))追问

大师 改成你所写的之后 错误又报 ArgumentException was unhandled (argument 'Expression' cannot be converted to type 'Range')

如何从 VB.NET 中的 USB 端口获取数据

【中文标题】如何从 VB.NET 中的 USB 端口获取数据【英文标题】:How to get the data from a USB port in VB.NET 【发布时间】:2012-03-06 23:38:34 【问题描述】:

我开发了一个用于管理患者详细信息的软件,该软件将数据存储到 MSsql 数据库中...... 但是,我需要存储的数据必须从传输数据的外部设备读取......现在我的问题是如何使用 VB.NET 2010 读取这些数据。

我在网上搜索,发现我可以使用 My.Computer.Port 从 USB 连接设备读取数据,但我无法获得它的逻辑和任何示例来实际完成这项工作......

我也通过很多书来了解这样做的实际方法,但还没有解决任何问题.....

如果有人可以帮助我举个例子,这样我就有办法完成我的任务......

【问题讨论】:

您是否已经有此设备的驱动程序等?是否像从 USB 记忆棒中读取文件一样简单? 设备实现了什么接口?您有几个用于 USB 的标准接口:USB 键盘、USB 驱动器、USB 串行...如果设备使用其中一个进行通信,那么您很幸运,并且可能有一个标准接口。如果设备没有实现这些,您将不得不编写自己的驱动程序或与供应商提供的驱动程序接口。最好的办法是询问供应商是否有可用的 API;您要做的并不像“读取 USB 端口”那么简单。查看设备管理器。 USB 设备如何报告?特殊司机? 你好@parasietje 我的设备使用串口Com 端口连接...并且设备不需要驱动程序,它会发送一些数据包。 见lvr.com/serial_ports_dotnet.htm 你想从中读取的只是一堆零和一?如果没有驱动程序来翻译它,这些数据将毫无意义。您使用的是什么设备?使用 Com 端口与使用 USB 端口不同,您知道吗? 【参考方案1】:

这是我发现的。您使用 HID.dll 连接 USB 端口。你知道最好的部分吗?我找到了一些例子。

这是一个链接,其中包含 USB 接口的基本示例和教程。 The HID Page

Sample Project File

【讨论】:

感谢约翰的快速回答,让我检查一下...如果它对我有用:) 我在制作一个安全程序时使用了那个 DLL,当计算机上没有连接闪存驱动器时会锁定资源管理器。 这两个链接现在都断开了;他们去一个时尚网站。域名可能已售出。 仅供参考:链接现在应该转到:janaxelson.com 而不是 lvr.com。我编辑了答案以反映这些更改,因此一旦经过审核,它们现在应该是正确的。【参考方案2】:

你循环那些: IO.DriveInfo.GetDrives() 并检查 DeviceType = IO.DriveType.Removable 的位置 然后是设备名称来使用它来复制数据或其他东西

详情请查看:Detect USB drive

【讨论】:

【参考方案3】:

Abhilash(我只问了这个问题

我添加这个,只是为了让大家知道,我目前对该主题的理解......

我实际上是向我认识的一个人问这个问题....

他向我解释了这个:-

基本上有两种方法可以从外部仪器获取数据。第一种方法是使用仪器自带的软件。如果仪器有任何类型的接口,应该有一些软件来读取数据。您可以使用此软件将数据存储到文件中,您的应用程序将读取具有固定结构的文件。很简单。

如果仪器提供串口但没有软件,那么您可以使用 My.Computer.Port 命名空间来访问仪器的串口。向串口发送命令并读回响应很容易,但您必须知道另一端识别的命令。您将需要有关设备的详细文档,您很可能会在 Internet 上找到这些文档。

第一种方法总是可取的。当然,您必须将数据与患者相关联。这可能很棘手。如果您可以找到允许您将数据从仪器下载到计算机的软件,那么获取数据将很简单。由于必须有人将设备连接到计算机,他们还可以启动应用程序并将数据保存到文件中。

【讨论】:

这是一个答案吗?或者属于问题的其他信息? @cody-grey 这是我从我的一个朋友那里找到的答案....这是为了让大家现在,我已经明白了这么多,但仍然如何实际得到这个东西...有问题... 以上不是两种方式...而是步骤:-) @abduIntegral 它是一个旧线程,但无论如何......这实际上是两种不同的方式,而不是步骤。许多 USB 设备都有自己的驱动程序,但有些经常使用标准的 FTDI USB 到 COMport 转换器。当你使用它时,你连接的不是USB,而是模拟的COM端口。

以上是关于VB中如何读取Excel中的数据的主要内容,如果未能解决你的问题,请参考以下文章

怎样用VB读取Excel文件中表格中的数据?

vb.net怎么从DataSet中读取一行的数据

用VB如何高效读取EXCEL中所有的sheet名称

VB 如何读取 Excel 所有列和行

怎么在VB中读取excel的数据

vb.net如何与excel建立连接,并从里面查询并读取数据?