IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C# Discussion :

Conversion Excel en fichier plat - Problème de typage [Débutant]


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Femme Profil pro
    Inscrit en
    Mars 2007
    Messages
    130
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 40
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Mars 2007
    Messages : 130
    Par défaut Conversion Excel en fichier plat - Problème de typage
    Bonjour,
    je me casse les dents à mon tour sur un problème que rencontrent beaucoup de personnes : transformer un fichier Excel en fichier plat, à l'aide d'un script C#

    Ma difficulté, hormis le fait que je débute en C#, est que mon fichier Excel me rend la vie impossible au niveau des types de données contenus dans les colonnes.
    Voici ma connexion :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    connectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + filePath + ";Extended Properties=\"Excel 8.0;HDR=Yes\";";
    Or avec cette procédure, Excel choisit tout seul le type des données. Je précise que la solution du "IMEX=1" dans la chaîne de connexion n'est pas pertinent dans mon cas (certaines colonnes peuvent avoir des chiffres, des chaînes de caractères, mais pas forcément les 2 selon le fichier que j'ai à traiter).

    Je ne peux pas non plus utiliser les fonctions de Microsoft.Office.Interop car je n'ai pas Excel sur le poste de production

    Est-ce que je suis lancée dans un truc impossible ou ai-je seulement loupé une astuce ?

    Tout aide est bienvenue, merci par avance !

  2. #2
    Membre confirmé
    Femme Profil pro
    Inscrit en
    Mars 2007
    Messages
    130
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 40
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Mars 2007
    Messages : 130
    Par défaut
    Bon, au cas où quelqu'un rencontre le même problème et tombe sur ce topic, j'ai trouvé la solution à mon problème

    J'utilise donc toujours le provider JET :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    connectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + filePath + ";Extended Properties=\"Excel 8.0;HDR=Yes;IMEX=1\";";
    Mais cette fois :
    HDR = No
    IMEX = 1
    Dans l'éditeur du registre => TypeGuessRows = 0

    En effet, comme les noms de colonnes sont tout le temps des chaînes de caractères, je les utilise comme une simple ligne de données et non comme noms de colonnes (après tout, c'est juste pour passer en fichier plat donc je me fiche un peu du nom des colonnes).
    Ainsi, j'aurai toujours au moins 1 chaîne de caractères dans les colonnes, et toutes les données seront donc interprétées comme du texte.

    Je n'ai ensuite plus qu'à écrire chaque ligne du fichier Excel lue, dans mon fichier csv.

    EDIT : désolée si je n'ai pas posé la question au bon endroit, j'avais juste trouvé des topics sur le même sujet dans les sections c#...

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [WD17] Conversion d'un fichier plat encoder en UTF-16LE vers UTF-8
    Par nokwih dans le forum WinDev
    Réponses: 1
    Dernier message: 21/05/2013, 10h47
  2. script conversion Excel vers fichier KML ou KMZ
    Par aminepop dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 2
    Dernier message: 26/07/2010, 12h19
  3. [XL-2003] convertir fichier excel en fichier plat
    Par ApprentiDeveloppeur dans le forum Excel
    Réponses: 3
    Dernier message: 04/06/2009, 08h06
  4. Convertir fichier excel au fichier plat ?
    Par ApprentiDeveloppeur dans le forum Général Java
    Réponses: 2
    Dernier message: 02/06/2009, 09h49
  5. Réponses: 13
    Dernier message: 24/10/2006, 14h17

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo