Sto tentando di utilizzare C# per leggere il file excel che ha un tipo di dati mescolato. Qui di seguito è la mia stringa di connessioneLettura di Excel DataType InterMixed senza modificare la chiave di registro
var path = //xls location
var MyConnection = new OleDbConnection("provider=Microsoft.Jet.OLEDB.4.0; Data Source='" + path + "';Extended Properties='Excel 8.0;IMEX=1;'");
ricerca mi ha insegnato che la completa Extended Properties
nella stringa di connessione si suppone che sia
Excel 8.0;IMEX=1;HDR=NO;TypeGuessRows=0;ImportMixedTypes=Text
Tuttavia, mi è stato informato che nella stringa di connessione, il TypeGuessRows=0
ha nessun significato come il valore sarà prelevato direttamente dal Registro di sistema. Quindi ho bisogno di modificare la chiave manualmente e rimuovere questa proprietà dalla stringa di connessione.
La particolare chiave di registro che è stato coinvolto è:
sentiero:
HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Jet \ 4.0 \ Engines \ Excel
chiave:
TypeGuessRows
valore originale = , al fine di farlo funzionare in cambio =
Senza fare questo il IMEX
non funzionerà nemmeno difficile aggiungo TypeGuessRows=0
nella Extended Properties
.
Tuttavia, la mia azienda proibisce di modificare il valore del registro (rigorosamente). Mi è stato detto di trovare alternative facendo questo.
In breve:
Esiste un modo per lettura tipo di dati mescolati eccellere file di , senza dovermodificare qualsiasi chiave di registro (che è una pratica abbastanza comune)?
Ulteriore argomento:
Avete sperimentato prima? Ci sono possibilità che possiamo impostare TypeGuessRows=0
dalla stringa di connessione solo senza dover modificare la chiave di registro (annullando la mia premessa precedente).
Se le cose non funzionano con OleDb
:
Esistono alternative accanto OleDb
?
Apprezzo qualsiasi consiglio o suggerimento.
saluti
Grande scoperta! Grazie! – Bronek