1

OleDbDataAdapterを使用してExcelから読み取ると、科学的記数法で入力されるいくつかの数値セルが表示されます。数字のみ(一部には文字が含まれる場合があります)で、6桁または7桁以上の文字列のみ。各セルの前に'を付けることはできません。新しいバージョンのExcelでは、まったく問題はありません。古いバージョンに問題があります(2003年だと思いますが、よくわかりません)

Dim dt As DataTable = dbConn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, _
                                     New Object() {Nothing, Nothing, Nothing, "TABLE"})

Dim dbAdapter As New OleDbDataAdapter("SELECT * FROM [" & strSheet & "]  ", dbConn)

私はすべてを試しました、私は何をすべきかわかりません。名前で各列を選択し、空の文字列を連結してみました。接続文字列にIMEX=1を追加してみました。またはレジストリを変更する:

    Private Function CheckRegKey() As Boolean
    Try
        Dim strRows As String = My.Computer.Registry.GetValue( _
            "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Jet\4.0\Engines\Excel", "TypeGuessRows", "99").ToString
        Dim strTypes As String = My.Computer.Registry.GetValue( _
            "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Jet\4.0\Engines\Excel", "ImportMixedTypes", "zip").ToString

        If strRows <> "0" Then
            My.Computer.Registry.SetValue("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Jet\4.0\Engines\Excel", "TypeGuessRows", 0, Microsoft.Win32.RegistryValueKind.DWord)
        End If
        If strTypes <> "Text" Then
            My.Computer.Registry.SetValue("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Jet\4.0\Engines\Excel", "ImportMixedTypes", "Text")
        End If
    Catch ex As Exception
        Return False
    End Try
    Return True

End Function

Dim dbAdapter As New OleDbDataAdapter("SELECT * FROM [" & strSheet & "]  ", dbConn)

誰かアイデアはありますか?

4

1 に答える 1