Ich versuche, C# zu verwenden, Excel-Datei zu lesen, die den Datentyp gemischt hat. Im Folgenden meine Verbindungszeichenfolge istLesen von Excel InterMixed DataType ohne Ändern des Registrierungsschlüssels
var path = //xls location
var MyConnection = new OleDbConnection("provider=Microsoft.Jet.OLEDB.4.0; Data Source='" + path + "';Extended Properties='Excel 8.0;IMEX=1;'");
Forschung mich gelehrt, dass die komplette Extended Properties
in der Verbindungszeichenfolge soll
Excel 8.0;IMEX=1;HDR=NO;TypeGuessRows=0;ImportMixedTypes=Text
jedoch sein, war ich, dass String in Verbindung informiert, die TypeGuessRows=0
hat keine Bedeutung als Wert wird entnommen werden, direkt aus der Registry. Daher muss ich den Schlüssel manuell ändern und diese Eigenschaft aus der Verbindungszeichenfolge entfernen.
Der besondere Registrierungsschlüssel, der beteiligt war, ist:
Pfad:
HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Jet \ 4.0 \ Engines \ Excel
Key:
TypGuessRows
Original-Wert = , um es in Veränderung zu machen arbeiten =
Ohne tun dies die IMEX
nicht einmal hart arbeiten ich hinzufügen TypeGuessRows=0
in die Extended Properties
.
Allerdings verbietet meine Firma die Änderung der Registrierungswert (streng). Mir wurde gesagt, ich solle Alternativen finden.
Kurz:
Gibt es eine Möglichkeit zu Lese vermischten Datentyp Excel Datei ohne mit zu jedem Registrierungsschlüssel ändern (das ist eine ziemlich gängige Praxis ist)?
Weiteres Thema:
Haben Sie diese Erfahrung vor? Gibt es Möglichkeiten, dass wir TypeGuessRows=0
aus der Verbindungszeichenfolge nur festlegen können, ohne den Registrierungsschlüssel zu ändern (meine obige Prämisse annullierend).
Wenn es nicht klappt mit OleDb
:
Gibt es Alternativen neben OleDb
?
Ich freue mich über jede Beratung oder Anregung.
Grüße
Große Entdeckung! Vielen Dank! – Bronek