Как использовать ACE OLEDB для импорта данных Excel в VB? - PullRequest
0 голосов
/ 13 ноября 2010

Изначально я использовал Office Interop для импорта данных, но это было головной болью и для меня, и для моего компьютера.Сейчас я пытаюсь загрузить его с помощью ACE, но моя сетка данных не заполняется.Когда все будет готово, мне нужно знать, как использовать эти данные другими способами и как извлечь определенные ячейки данных из этого набора данных.Кстати, я использую Visual Studio 2008.

Сейчас у меня есть ...

Public Function funcUpdate(ByVal sFileLoc As String) As Boolean
    'Determine connection string properties
    Dim dbProperty As String
    If updFileExt = ".xlsx" Then
        dbProperty = "Excel 12.0 Xml;HDR=No"
    ElseIf updFileExt = ".xls" Then
        dbProperty = "Excel 12.0;HDR=No"
    Else
        MessageBox.Show("FATAL: File type error on updater", "OHGAWDNO", MessageBoxButtons.OK, MessageBoxIcon.Error)
        updateTerm()
        Return False
    End If
    Dim dbConn As New OleDb.OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & updFile & ";Extended Properties=" & dbProperty & ";")
    Dim dbCommand As New OleDb.OleDbDataAdapter("select * from [sheet1$]", dbConn)
    Dim dtSet As New DataSet
    Try
        dbCommand.TableMappings.Add("Table", "ExcelTest")
        dbCommand.Fill(dtSet)
        Form1.DataGrid1.DataSource = dtSet.Tables(0)
    Catch exlErr As Exception
    Finally
        dbConn.Close()
    End Try

    updateTerm()
End Function

1 Ответ

0 голосов
/ 02 февраля 2015

Попробуйте сделать это.

Dim path As String = "c:\example.xlsx"
Dim constr As String = [String].Format("Provider=Microsoft.ACE.OLEDB.12.0;Data Source={0};Extended Properties=""Excel 12.0 Xml;" & _
                                           "HDR=YES;IMEX=1;""", path)
Dim adapter As New OleDbDataAdapter
Using cn As New System.Data.OleDb.OleDbConnection(constr)

        Try
            cmdselcet = New OleDbCommand("SELECT * FROM [Sheet1$]", cn)
            cn.Open()

            adapter.SelectCommand = cmdselcet
            Dim ds As DataSet
            ds = New DataSet

            'Display
            adapter.Fill(ds)
            DataGridView1.DataSource = ds.Tables(0)
            MsgBox("Done!")

        Catch ex As Exception
            MsgBox(ex.Message)
        End Try

    End Using
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...