从excel文档中提取数据

从excel文档中提取数据,excel,vb.net,Excel,Vb.net,我正在编写一个程序,允许用户使用ID搜索图像。它找到图像并将其保存到用户桌面。所有这些都很完美。我要添加的下一项是元数据。在程序的另一个选项卡上,我希望程序访问一个excel文件,该文件将包含所有照片元数据,如ID、说明和源。要获取此元数据,我需要程序获取用户提供的ID,在excel上搜索它,然后从该搜索词旁边的相邻单元格中,提取信息并将其放入正确的文本框中。 例如,用户输入iStock ID 62365645,程序在excel中搜索该ID(在A列中),找到它,然后获取源(在B列中),然后获取描

我正在编写一个程序,允许用户使用ID搜索图像。它找到图像并将其保存到用户桌面。所有这些都很完美。我要添加的下一项是元数据。在程序的另一个选项卡上,我希望程序访问一个excel文件,该文件将包含所有照片元数据,如ID、说明和源。要获取此元数据,我需要程序获取用户提供的ID,在excel上搜索它,然后从该搜索词旁边的相邻单元格中,提取信息并将其放入正确的文本框中。 例如,用户输入iStock ID 62365645,程序在excel中搜索该ID(在A列中),找到它,然后获取源(在B列中),然后获取描述(在C列中)。将在正确的文本框中显示该信息: Description=txtDescripton Source=txtSource

我很难找到正确的代码来从相邻的单元格中提取信息,并将其显示在文本字段中。 程序示例:

Excel示例:

代码:

“其他图像代码在这里

    Catch
        ' If user is not connected to the VPN, a message will display informing user to connect
        MsgBox("You need to be connected to the VPN to access the Photo Database Folder, Please connect to VPN and try again", MsgBoxStyle.OkOnly, "VPN Not Connected")
    End Try
    xl.ActiveWorkbook.Close(False)
    xl.Quit()
End Sub

我只对VBA编程,但您的错误似乎是逻辑错误,因为您在此处检索文本
txtDescription.text=iStockMetadata.Cells(SourceID1,150000000)
。相反,您应该检索该文本的位置,从该位置提取行号,将整行复制到数组中,然后在表单的文本框中显示该数组的元素。哇。。每次用户单击搜索按钮时,您都会启动一个新的Excel副本以打开一张工作表,然后希望它在下次用户单击搜索按钮时关闭并消失?!也许您应该保留一个datatable和serach(或者通过bindingnavigator将控件绑定到datatable,并使用Filter属性,然后所有这些都将自动执行..这些
Dim sourceFolderPathXXX=“Z:\04-CPE\iStock Photo Database”'没有空格的Folderpath
重复行是多余的(它们总是包含相同的字符串)并且似乎与注释不一致(路径名包含空格,尽管注释说它没有)为什么不编写一个程序将Excel数据移动到一个合适的数据库中。Excel不是一个数据库,尝试将其作为一个数据库使用会很尴尬。一旦数据正确存储,搜索和更新它将非常容易。
    Catch
        ' If user is not connected to the VPN, a message will display informing user to connect
        MsgBox("You need to be connected to the VPN to access the Photo Database Folder, Please connect to VPN and try again", MsgBoxStyle.OkOnly, "VPN Not Connected")
    End Try
    xl.ActiveWorkbook.Close(False)
    xl.Quit()
End Sub