将电子表格 (OpenOffice) 导入 Visual Basic .net 组合框

Posted

技术标签:

【中文标题】将电子表格 (OpenOffice) 导入 Visual Basic .net 组合框【英文标题】:Import spread sheet (OpenOffice) to Visual Basic .net combo box 【发布时间】:2017-11-11 03:01:25 【问题描述】:

我有一个 OpenOffice 电子表格中的客户姓名、项目名称、员工姓名和小时费率列表,我需要将其导入 Visual Basic .net 2017。如果我可以对组合框执行此操作,那将是首选,因此用户只需从下拉列表中选择名称。如果不设置 SQL 服务器,这似乎是不可能的。有谁知道我应该怎么做?

我试过了,但它说它无法连接到 Microsoft.Ace.OLEDB.12.0 我从 YouTube 视频中获得了此代码

Private Sub btnGetSpread_Click(sender As Object, e As EventArgs) Handles btnGetSpread.Click
    Try

        Dim MyConnection As System.Data.OleDb.OleDbConnection
        Dim dataSet As System.Data.DataSet
        Dim MyCommand As System.Data.OleDb.OleDbDataAdapter
        Dim path As String = "P:\Coding\Visual Studio\Visual Basic\TestProject\TestProject\bin\Files\Company_Sheet.ods"

        MyConnection = New System.Data.OleDb.OleDbConnection("Provider=Microsoft.Ace.OLEDB.12.0;Data Source =" + "P:\Coding\Visual Studio\Visual Basic\TestProject\TestProject\bin\Files\Company_Sheet.ods" + ";Extended Properties=Excel 12.0;")
        MyCommand = New System.Data.OleDb.OleDbDataAdapter("select * from [Sheet1$]", MyConnection)

        dataSet = New System.Data.DataSet
        MyCommand.Fill(dataSet)
        dgvSpread.DataSource = dataSet.Tables(0)

        MyConnection.Close()

    Catch ex As Exception

        MsgBox(ex.Message.ToString)

    End Try

End Sub

【问题讨论】:

在发帖前阅读How to Ask 并使用tour。此外,其中几个标签是互斥的。标签包括指导文本。 这与excelvba 有什么关系? 【参考方案1】:

这将使您入门。我有时必须将 Excel 电子表格中的数据导入 Oracle 数据库,这段代码已有多年历史,但仍然有效(VS 2013)。修改以适合您的情况。

    Dim sourceFile As String = "C:\Users\appdata\Documents\SomeData.xls"
    Dim srcConnString As String = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & sourceFile & ";Extended Properties=""Excel 8.0;HDR=YES;"""
    Dim srcConn As OleDbConnection = New OleDbConnection(srcConnString)
    srcConn.Open()
    ' in the select statement, the fields are the column names in the spreadsheet and are expected to be in row 1 and are case sensitive
    ' the from clause in the query is the tab of the spreadsheet where the data is
    Dim cmdExcel As OleDbCommand = New OleDbCommand("Select NAME,ADDRESS,CITY,STATE,ZIP From [DATA$] Where some where clause", srcConn)
    Dim drExcel As OleDbDataReader = cmdExcel.ExecuteReader()
    ' Now loop through the rows in the spreadsheet
    While drExcel.Read()
        'Do stuff ...
    End While

【讨论】:

以上是关于将电子表格 (OpenOffice) 导入 Visual Basic .net 组合框的主要内容,如果未能解决你的问题,请参考以下文章

从 Writer 宏打开 OpenOffice 电子表格

将 excel、openoffice 和 ms office 2007 数据导入到 rails 中的 db

如何使用 C# 和 LibreOffice/OpenOffice 在电子表格单元格中设置粗体文本?

将字体从电子表格导出到 python

如何从命令行对 OpenOffice/LibreOffice 电子表格运行 sql 查询?

在 OpenOffice 电子表格中查找和移动文本