Прочитайте файл Excel и запишите его в файл SPF, используя OleDb в VB.Net - PullRequest
0 голосов
/ 16 апреля 2020

Я пытаюсь прочитать файл Excel в строгом формате, а затем записать содержимое в файл SPF.
Вот мой код:

Imports System.IO.Path
Imports System.Data


Public Class Form1
    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        Dim fileName As String
        Dim folderName As String
        fileName = ""
        folderName = ""
        Call getFileAndFolderName(fileName, folderName)

    End Sub



 Private Sub getFileAndFolderName(ByRef fileName As String, ByRef folderName As String)
        OpenFileDialog1.FileName = ""
        OpenFileDialog1.Filter = "Excel files(*.xls;*.xlsx)|*xls;*xlsx"
        OpenFileDialog1.ShowDialog()
        fileName = OpenFileDialog1.FileName

        Try
            folderName = GetDirectoryName(fileName)
        Catch ex As Exception
            MsgBox(ex.ToString)
        End Try

        If folderName = "" Or fileName = "" Then
            MsgBox("No File or folder is selected")
            Exit Sub
        End If

    End Sub

    Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
        Dim fileName As String
        Dim folderName As String
        fileName = ""
        folderName = ""
        Call getFileAndFolderName(fileName, folderName)

        Try
            Dim MyConnection As OleDb.OleDbConnection
            Dim DtSet As DataSet
            Dim DtTable As DataTable
            Dim MyCommand As OleDb.OleDbDataAdapter
            MyConnection = New OleDb.OleDbConnection("provider=Microsoft.Jet.OLEDB.4.0;" & "Data Source=" & fileName & "; " & "Extended Properties=Excel 8.0;")
            MyCommand = New OleDb.OleDbDataAdapter("select * from [Sheet1$]", MyConnection)
            MyCommand.TableMappings.Add("Table", "TestTable")
            DtSet = New System.Data.DataSet
            MyCommand.Fill(DtSet)
            DataGridView1.DataSource = DtSet.Tables(0)
            DtTable = DtSet.Tables(0)
            Dim S() As Object
            s = DtTable.Rows(0).ItemArray
            MsgBox(s(3).ToString)
            MyConnection.Close()
        Catch ex As Exception
            MsgBox(ex.ToString)
        End Try
    End Sub
End Class

Он работает в первые несколько шаги, все содержимое записывается в DataGridView1, а затем я хочу
получить первую строку, чтобы получить каждую его ячейку, я не знаю, как продолжить.
Формат файла Excel:
Index property1 property2 ...
1 xx xx
2 xx xx
3 xx xx
Кто-нибудь может мне помочь? Заранее спасибо!

...