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 这是什么错误?请大师帮忙解决
InvalidCastException 是 无效类型转换异常,用n_shuzi = xlsheet.Cells(1, 1).value试试。追问
大师 问题解决了 谢谢啊 还是使用最后一句加上.value 嘿嘿 3Q
追答不客气,能得到正解就好。
参考技术B Public f_row As IntegerPublic 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中的数据的主要内容,如果未能解决你的问题,请参考以下文章