| |
| In diesem Forum haben Sie die Möglichkeit Kommentare, Fragen und Verbesserungsvorschläge zu den im vb@rchiv gelisteten Tipps und Workshops zu posten.
Hinweis: Ein neues Thema kann immer nur über die jeweilige Tipps & Tricks bzw. Workshop Seite eröffnet werden! | Fragen zu Tipps & Tricks und Workshops im vb@rchivTipp 2146: Excel-Dateien einfach auslesem mit OleDB | | | Autor: danieljena | Tipp anzeigenDatum: 17.03.10 12:24 |
| hallo,
den im betreff stehenden tipp finde ich sehr schön.
nur habe ich eine kleine frage:
ist es möglich die spaltenüberschriften nicht aus der zeile 1 sondern aus zeile 5 auszulesen?
mfg
danieljena | |
Re: Excel-Dateien einfach auslesem mit OleDB | | | Autor: danieljena | Datum: 18.03.10 18:55 |
| hallo,
ich habe eine einfache lösung gefunden:
ich schmeiße einfach die zeile aus der funktion ras, die mir die namen setzt.
und ganz am ende durchlaufe ich in einer schleife die spalten der datatable und setzte die spaltennamen anhand des inhaltes in der zeile 5.
mfg
danieljena | |
Re: Excel-Dateien einfach auslesem mit OleDB | | | Autor: McGoy | Datum: 25.11.12 08:42 |
| Hallo,
grandioser tipp. hat mir sehr geholfen.
ich habe nur eine kleine anmerkung:
müßte der aufruf nicht "xls2Datatable(..." anstatt "csv2Datatable(..." heißen?
grüße
mcgoy | |
Re: Excel-Dateien einfach auslesem mit OleDB | | | Autor: danieljena | Datum: 13.01.14 10:30 |
| Hallo,
ich hoffe hier kann mir einer weiterhelfen.
Bis vor kurzem funktionierte diese Funktion wunderbar, letzte woche bin ich auf MSO 2010 Pro umgestiegen und bekomme nun immer den Fehler "installiertes ISAM nicht gefunden" (beim versuch eine xls-Datei einzulesen).
Die Excel Datei wird mit Excel 2003 erstellt.
Jemand ne Idee?
mfg
danieljena | |
Re: Excel-Dateien einfach auslesem mit OleDB | | | Autor: smarki | Datum: 25.11.15 14:06 |
| Hallo zusammen,
ich nutze folgenden Code und unter Office 2016 funktioniert bei mir der ConnectionString "Provider=Microsoft.ACE.OLEDB.12" nicht mehr.
Ich habe mal die Varianten "Provider=Microsoft.ACE.OLEDB.15" und "Provider=Microsoft.ACE.OLEDB.16" ausprobiert aber nichts funktioniert.
Anstatt einer Connection bekomme ich die Fehlermeldung: "Der 'Microsoft.ACE.OLEDB.12.0'-Provider ist nicht auf dem lokalen Computer registriert.
Imports System.IO
Imports System.Data.OleDb
Function xls2Datatable(ByVal Dateiname As String, ByVal Blattname As String) As _
DataTable
If File.Exists(Dateiname) = False Then Return Nothing
Dim FileInfo As FileInfo = New FileInfo(Dateiname)
Dim DT As New DataTable
Dim oConn As OleDbConnection = New OleDbConnection
If Dateiname.Contains(".xlsx") Then
oConn.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;" & _
"Data Source=" & Dateiname & ";" & _
"Extended Properties=""Excel 12.0 Xml;HDR=YES"";"
Else
oConn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=" & Dateiname & ";" & _
"Extended Properties=""Excel 8.0;HDR=Yes;IMEX=1"";"
End If
oConn.Open()
Dim cmd As OleDbCommand
cmd = New OleDbCommand("SELECT * FROM [" & Blattname & "$]", oConn)
Dim reader As OleDbDataReader = cmd.ExecuteReader( _
CommandBehavior.KeyInfo Or CommandBehavior.CloseConnection)
Dim schema As DataTable = reader.GetSchemaTable()
Dim columns(schema.Rows.Count - 1) As DataColumn
Dim column As DataColumn
' Build the schema for the table that will contain the data.
For i As Integer = 0 To columns.GetUpperBound(0) Step 1
column = New DataColumn
With column
.AllowDBNull = CBool(schema.Rows(i)("AllowDBNull"))
.AutoIncrement = CBool(schema.Rows(i)("IsAutoIncrement"))
.ColumnName = CStr(schema.Rows(i)("ColumnName"))
.DataType = CType(schema.Rows(i)("DataType"), Type)
If .DataType Is GetType(String) Then
.MaxLength = CInt(schema.Rows(i)("ColumnSize"))
End If
.ReadOnly = CBool(schema.Rows(i)("IsReadOnly"))
.Unique = CBool(schema.Rows(i)("IsUnique"))
End With
columns(i) = column
Next i
Dim data As New DataTable
Dim row As DataRow
data.Columns.AddRange(columns)
' Get the data itself.
While reader.Read()
row = data.NewRow()
For i As Integer = 0 To columns.GetUpperBound(0)
row(i) = reader(i)
Next i
data.Rows.Add(row)
End While
reader.Close()
oConn.Close()
Return data
End Function | |
Re: Excel-Dateien einfach auslesem mit OleDB | | | Autor: danieljena | Datum: 25.11.15 17:53 |
| Hallo smarki,
Was hast du den Für Versionen für Windows und Office, und sind diese 32 od 64-bit? | |
| Sie sind nicht angemeldet! Um einen neuen Beitrag schreiben zu können, müssen Sie sich zunächst anmelden.
Einloggen | Neu registrieren |
|
|
Neu! sevPopUp 2.0
Dynamische Kontextmenüs!
Erstellen Sie mit nur wenigen Zeilen Code Kontextmenüs dynamisch zur Laufzeit. Vordefinierte Styles (XP, Office, OfficeXP, Vista oder Windows 8) erleichtern die Anpassung an die eigenen Anwendung... Weitere InfosTipp des Monats Access-Tools Vol.1
Über 400 MByte Inhalt
Mehr als 250 Access-Beispiele, 25 Add-Ins und ActiveX-Komponenten, 16 VB-Projekt inkl. Source, mehr als 320 Tipps & Tricks für Access und VB
Nur 24,95 EURWeitere Infos
|
|
|
Copyright ©2000-2024 vb@rchiv Dieter Otter Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.
Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel
|
|