Как открыть данные или файлы Excel непосредственно в Gridview - PullRequest
0 голосов
/ 09 января 2020

Следующий шаг аналогичен импорту файлов Excel, но на этот раз файлы открываются прямо в папку, без открытия или выбора файлов в окне, только нажатием кнопки.

Импорт всех файлов Excel непосредственно в GridView:

Importing all Excel files directly into GridView

Это пример кода:

  Dim conn As OleDbConnection
    Dim dta As OleDbDataAdapter
    Dim dts As DataSet = Nothing
    Dim mainDts As DataSet = Nothing
    Dim Excel As String
    Dim OpenFileDialog As New OpenFileDialog
    OpenFileDialog.InitialDirectory = "C:\Tests\Test"
    OpenFileDialog.Multiselect = True
    OpenFileDialog.Filter = "All Files (*.*)|*.*|Excel Files (*.xlsx)|*.xlsx|Xls Files (*.xls)|*.xls"
    If OpenFileDialog.ShowDialog(Me) = DialogResult.OK Then
        For Each fileName As String In OpenFileDialog.FileNames
            Dim fi As New IO.FileInfo(fileName)
            Excel = fi.FullName
            conn = New OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + Excel + ";Extended Properties=Excel 12.0;")
            dta = New OleDbDataAdapter("select * from [Sheet$]", conn)
            dts = New DataSet
            dta.Fill(dts, "[Sheet$]")

            conn.Close()
            If mainDts Is Nothing Then
                mainDts = dts
            Else
                mainDts.Merge(dts)
            End If
        Next
        GridControl1.DataSource = mainDts
        GridControl1.DataMember = "[Sheet$]"
    End If

End Sub

Можно ли импортировать, просто нажав эту кнопку, чтобы открыть файлы, подобные этим?

"C:\Tests\Test"

1 Ответ

1 голос
/ 09 января 2020

Удалите OpenFileDialog и замените его свойство FileNames своей собственной коллекцией FileNames. В этом случае я сделал простой массив на месте.

    Dim conn As OleDbConnection
    Dim dta As OleDbDataAdapter
    Dim dts As DataSet = Nothing
    Dim mainDts As DataSet = Nothing
    Dim Excel As String
    Dim fileNames = {"C:\Tests\Test\Test1.xls"}
    For Each fileName As String In fileNames
        Dim fi As New IO.FileInfo(fileName)
        Excel = fi.FullName
        conn = New OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + Excel + ";Extended Properties=Excel 12.0;")
        dta = New OleDbDataAdapter("select * from [Sheet$]", conn)
        dts = New DataSet
        dta.Fill(dts, "[Sheet$]")
        conn.Close()
        If mainDts Is Nothing Then
            mainDts = dts
        Else
            mainDts.Merge(dts)
        End If
    Next
    GridControl1.DataSource = mainDts
    GridControl1.DataMember = "[Sheet$]"
End Sub
...