La Lecture Excel Mélangés Type De Données, Sans Modifier La Clé De Registre
Je suis en train d'utiliser le C# pour lire le fichier excel qui a entremêlé de type de données. Ci-dessous est ma chaîne de connexion
var path = //xls location
var MyConnection = new OleDbConnection("provider=Microsoft.Jet.OLEDB.4.0; Data Source='" + path + "';Extended Properties='Excel 8.0;IMEX=1;'");
De recherche m'a appris que le Extended Properties
dans la chaîne de connexion est censé être
Excel 8.0;IMEX=1;HDR=NO;TypeGuessRows=0;ImportMixedTypes=Text
Cependant, j'ai été informé que, dans la chaîne de connexion, le TypeGuessRows=0
n'a pas de sens que la valeur sera prises directement à partir du Registre. J'ai donc besoin de modifier manuellement la clé et retirer ce bien de la chaîne de connexion.
Le particulier de la clé de registre qui a été impliqué est:
Chemin:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Jet\4.0\Engines\Excel
Clés:
TypeGuessRows
Valeur d'origine = 8, afin de le faire fonctionner changer = 0
Sans cela, l' IMEX
ne fonctionne pas même difficile je ajouter TypeGuessRows=0
dans le Extended Properties
.
Cependant, mon entreprise interdit de modifier la valeur de registre (strictement). On m'a dit de trouver des alternatives en faisant cela.
En bref:
Est-il un moyen de lire mélangés type de données excel fichier sans avoir à modifier aucune clé de registre (qui est une pratique relativement courante)?
Autre sujet:
Avez-vous vécu cela avant? Existe-il des possibilités que nous pouvons mettre en TypeGuessRows=0
de la chaîne de connexion, sans avoir à modifier la clé de registre (l'annulation de ma condition).
Si les choses ne fonctionnent pas avec OleDb
:
Sont il des alternatives à côté de OleDb
?
J'apprécie tout conseil ou suggestion.
Ce qui concerne
OriginalL'auteur rofans91 | 2012-03-30
Vous devez vous connecter pour publier un commentaire.
Ce que vous pouvez faire est de leur demander d'en-tête dans la première ligne d'Excel et de l'ensemble de la chaîne de connexion à
La clé ici est de mettre en HDR=Pas de (SANS en-TÊTE), mais puisque vous avez l'en-tête maintenant, chaque colonne sera considérée comme une chaîne de caractères (texte), et vous pouvez faire l'analyse ou de la validation de chaque valeur de cellule. Bien sûr, vous aurez besoin d'ignorer ou de supprimer la première ligne, car il contient des informations d'en-tête.
OriginalL'auteur Vlad Bezden
Au lieu d'utiliser
OleDb
je sais utiliser Excel Lecteur De Données. Il travaille beaucoup! Hautement recommandé!OriginalL'auteur rofans91