Чтение из Excel с получением подсказок вместо строки при необходимости - PullRequest
0 голосов
/ 22 апреля 2020

Проблема, с которой я сталкиваюсь сейчас, заключается в том, что первая строка данных, которую я получаю из документов Excel, иногда возвращается в виде подсказок вместо соответствующих им типов данных (только некоторые ячейки). я попытался переделать электронные таблицы и переделать все форматирование на стороне Excel, так что мне осталось предположить, что это как-то связано с классом oledb? Любая информация или pu sh в правильном направлении будет принята с благодарностью.

Imports Microsoft.Office.Interop


Public Class Form1
    Dim ExTable1 As New DataTable
    Dim ExTable2 As New DataTable

    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        OpenFileDialog1.ShowDialog()
        ExTable1 = ConnectToFile(OpenFileDialog1.FileName)
        Table1.DataSource = ExTable1
    End Sub

    Function ConnectToFile(path)
        Dim dt As DataTable = New DataTable
        Dim selStr As String = "SELECT * FROM [{0}]"
        Dim dtSchema
        Dim drSchema
        Dim con As OleDb.OleDbConnection = New OleDb.OleDbConnection

        con.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & path & ";Extended Properties=Excel 12.0 Xml;"

        con.Open()
        dtSchema = con.GetOleDbSchemaTable(OleDb.OleDbSchemaGuid.Tables, New Object() {Nothing, Nothing, Nothing, "TABLE"})

        drSchema = dtSchema.Rows(0)
        Dim Sheet1 = drSchema("TABLE_NAME")
        Dim cmd As OleDb.OleDbCommand = New OleDb.OleDbCommand(String.Format(selStr, Sheet1))

        cmd.Connection = con
        Dim da As OleDb.OleDbDataAdapter = New OleDb.OleDbDataAdapter
        da.SelectCommand = cmd

        da.Fill(dt)
        Table1.DataSource = dt
        con.Close()
        con.Dispose()
        Return dt
    End Function
End Class
...