Qu'est-ce que la société IMEX dans OLEDB chaînes de connexion?
"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=localhost;Extended Properties=""Excel 8.0;HDR=Yes;IMEX=2"
Quel est le but de IMEX=2
au-dessus de la chaîne de connexion?
Vous devez vous connecter pour publier un commentaire.
De ConnectionStrings
Veuillez noter que la société IMEX valeur peut être très important quand vous avez besoin d'écrire des données vers Excel.
Une recherche rapide sur Internet sur la société IMEX trouvé de nombreux articles sur les problèmes avec divers IMEX valeurs
Il y a un problème potentiel lors de la lecture des fichiers Excel avec une OleDbConnection.
Si vous utilisez
pour une colonne, comme le suivant, où les 8 premières lignes 4 (ou plus) des valeurs numériques,
alors le type est considéré comme le numérique et les valeurs de chaîne sont lus comme nulle.
Notez que l'en-tête n'est pas utilisé comme un en-tête ici (HDR=NON), de sorte que le "code postal" ligne de est sur la première ligne.
(Ces codes postaux sont de la Suède dans le cas où vous ne reconnaissez pas leur format.)
Mais si vous avez des données ressemble à cela, seulement 3 sont des numériques, de les 8 premières lignes
il fonctionne, il lit tout, comme des chaînes de caractères.
De sorte que le premier cas est un problème. Mais il existe une solution.
Disons que vous utilisez
où nous avons changé IMEX à 1 et HDR OUI, alors il va lire les données sous forme de chaînes dans les deux cas ci-dessus.
Mais disons que nous avons des données de cette
puis toutes les 8 premières lignes de données sont numériques, et alors il échoue à nouveau, même si nous avons IMEX=1.
Vous pouvez résoudre ce problème de la manière suivante. Modifier la chaîne de connexion à ce
Avis que nous avons gardé IMEX=1, mais a changé de retour HDR ou PAS.
Maintenant la ligne 1 n'est pas considéré comme un en-tête de plus et "code postal" est
lire des données et puisque c'est clairement une chaîne de caractères, toutes les lignes sont lues comme des chaînes de caractères (c'est la façon dont la société IMEX=1 œuvres).
Il y a deux inconvénients à cette méthode. Les deux peuvent être résolus:
1) Vous ne pouvez pas se référer à la colonne par son nom (code postal) mais besoin d'utiliser par exemple F7 selon l'endroit où la colonne est situé.
2) La valeur "zipcode" apparaîtra dans vos données.
Lorsque vous lisez un fichier excel dans une table de données, les données de la table de lit les valeurs de la colonne et après environ 8 à 10 enregistrements, il va affecter le type de données d'une colonne. Par exemple, si les valeurs de la colonne sont
11.0
22.0
33.0
44.0
55.0
66.0
77.0
88.0
99.0
abc
Ainsi, le tableau de données n'aurez pas la valeur abc que la colonne a été attribué les données de type "Double". Pour éviter cela, et de lire l'intégralité des données de la société IMEX = 1 est utilisé.
N'hésitez pas à commenter pour plus de requêtes.
Veuillez utiliser un programme généralisé de la fonction dans un Module...