Comment pouvez-vous prévenir les zéros d'être dépouillé lors de l'importation d'un fichier excel doc à l'aide de c#

StackOverflow https://stackoverflow.com/questions/22879

  •  09-06-2019
  •  | 
  •  

Question

Je suis en mesure de se connecter et de lire un fichier excel pas de problème.Mais lors de l'importation des données telles que zipcodes qui ont des zéros, comment voulez-vous empêcher excel de deviner le type de données et le processus de suppression de zéros?

Était-ce utile?

La solution

Je crois que vous devez définir l'option dans votre chaîne de connexion à la force textuelle d'importation plutôt que l'auto-détection.

Provider=Microsoft.ACE.OLEDB.12.0;
    Data Source=c:\path\to\myfile.xlsx;
    Extended Properties=\"Excel 12.0 Xml;IMEX=1\";

Votre kilométrage peut varier selon la version que vous avez installée.La société IMEX=1 propriété étendue indique Excel pour traiter mélangés données sous forme de texte.

Autres conseils

Préfixe '

En préfixant le contenu de la cellule avec les forces de Excel de le voir comme texte au lieu d'un nombre.Le " ne sera pas affiché dans Excel.

Il y a un registre hack qui peut forcer Excel à lire plus que les 8 premières lignes lors de la lecture d'une colonne pour déterminer le type:

Changement

HKLM\Software\Microsoft\Jet\4.0\Engines\Excel\TypeGuessRows 

À 0 pour lire toutes les lignes, ou un autre numéro afin de le configurer pour que le nombre de lignes.

Non pas que cela aura un slighht des performances.

Je pense que la manière de le faire serait de formater le fichier source excel telles que la colonne est au format Texte au lieu de Général.Sélectionnez la totalité de la colonne de droite et cliquez sur et sélectionnez format de cellule, sélectionnez le texte à partir de la liste des options.

Je pense que ce serait de définir explicitement que le contenu de la colonne est de type texte et doit être traitée comme telle.

Laissez-moi savoir si cela fonctionne.

Enregistrer le fichier comme un fichier texte délimité onglet a également bien fonctionné.

---vieux Malheureusement, nous ne pouvons pas compter sur les colonnes d'excel doc pour rester dans un format particulier que les utilisateurs vont être de coller des données régulièrement.Je ne veux pas que l'appli crash si nous sommes en s'appuyant sur un certain type de données pour une colonne.

préfixant avec " permettrait de travail, est-il un moyen raisonnable de le faire par programmation une fois que les données existent déjà dans excel doc?

L'envoi de la valeur 00022556 comme '=" 00022556"' à partir de Sql server est un excellent moyen de gérer zéro problème

Ajouter " " avant votre chaîne.Il fera de la chaîne semblent dans un nouvel onglet.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top