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

Dotnet Discussion :

traitement fichier excel


Sujet :

Dotnet

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre très actif Avatar de Nako_lito
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Mai 2008
    Messages
    793
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Mai 2008
    Messages : 793
    Par défaut traitement fichier excel
    Bonjour a tous,

    J'aurais besoin de convertir des fichier XLS (excel 97-2003) en csv.

    Probleme 1: multi feuilles
    Probleme 2: nom des feuilles variable

    Pour le premier probleme je me doute qu'il faille faire une boucle sur les feuilles, mais par rapport a quoi et comment? telle est la question.

    Pour le second probleme je m'explique. Ces fichier excel sont envoyer par des revendeur qui propose plusieur marque de produit, mais d'un mois a l'autre les marques ne sont pas les memes, certaine reste, d'autre se rajoute, et d'autre sont retire.

    Je voudrais gérer tout ca par un petit code en C# qui m'extrai toutes les feuilles dans autant de fichier.csv pour qu'ensuite je puisse les traiter a l'aide de SQL services integrated.

    J'ai tenté les ligne de commande, mais je sais pas si ce sont mes syntaxe qui sont fausses ou les lignes que j'ai pompé qui marche pas, mais je suis dans la galere.

    convertXLS.exe" /S""C:\...\Bureau\Classeur1.XLS"" /F-4143 /N"Feuil1,Feuil3,Feuil2" /T""C:\...\Bureau\Classeur1.CSV"" /C6 /M2 /U /V
    Jvous remercie par avance pour les eventuelles réponse que vous pourriez m'apporter.

  2. #2
    Rédacteur/Modérateur
    Avatar de Skalp
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2006
    Messages
    1 694
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 694
    Par défaut
    Si j'ai bien compris, tu essayes de piloter l'outil Convert XLS de SoftInterface en ligne de commande ? C'est peut-être une question bête, mais comme tu n'en as pas parlé : est-ce que tu disposes de cet outil ?

    Tu as l'aide en ligne à cette adresse :
    Convert Excel (XLS, XLSX, XLSM, XLSB) To CSV, TSV (any character delimited)

    Je te suggère de commencer à tester un fichier xls simple avec 1 feuille, dont tu connais le nom et à le convertir en 1 fichier csv.

  3. #3
    Membre très actif Avatar de Nako_lito
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Mai 2008
    Messages
    793
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Mai 2008
    Messages : 793
    Par défaut
    Non ce n'est pas une question bete, non je ne l'ai pas, mais comme je bosse en entreprise, tout ce qui est exe externe est a eviter car au niveau des licences c'est assez moyen.

    Donc non je ne veux pas piloter l'exe de convertXLS, je voudrais savoir si y'a pas un moyen de convertir du XLS en CSV par ligne de commande ou C#?

  4. #4
    Rédacteur/Modérateur
    Avatar de Skalp
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2006
    Messages
    1 694
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 694
    Par défaut
    Citation Envoyé par Nako_lito Voir le message
    Non ce n'est pas une question bete, non je ne l'ai pas, mais comme je bosse en entreprise, tout ce qui est exe externe est a eviter car au niveau des licences c'est assez moyen.
    Ok
    Citation Envoyé par Nako_lito Voir le message
    Donc non je ne veux pas piloter l'exe de convertXLS, je voudrais savoir si y'a pas un moyen de convertir du XLS en CSV par ligne de commande ou C#?
    Est-ce que tu es obligé de passer par un fichier csv ?
    • Si oui, il est possible de convertir les fichiers en passant par une automation Excel (un peu lourd, pour si peu).
    • Si non, il est possible de lire les fichiers Excel par une connexion OleDB.

  5. #5
    Membre très actif Avatar de Nako_lito
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Mai 2008
    Messages
    793
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Mai 2008
    Messages : 793
    Par défaut
    en fait je t'explique le but de mon app.

    Je realise une app qui va regrouper tout les tarifs de mes fournisseurs (6 aux total), les sources sont diverses (Excel, .txt, zip sur FTP).

    Jusqu'a maintenant pas de pb pour les test (c'est la premiere fois que je fais ca), mais j'ai recu la mise a jour d'une feuille excel, et les feuillet ne sont plus les meme donc ce que j'avais fait au par avant n'est plus valable (j'utilise les sources de données excel sur SSIS je sais pas si tu connais cet outils de la suite SQL server 2005), donc il faut que je me debrouille a lire tout les feuillet du xls, les traiter (les stocker dans une BDD) et delete le fichier.

    Mon superviseur m'as conseiller de passer par le format csv (d'apres ce qu'il m'as dit, ca separe les feuillet d'un xls en autant de fichier que de feuille), donc je sais pas si c'est la methode la plus simple, rapide ou autre, mais en tout cas c'est la seule dont il m'as parlé. Apres si tu en connais une meilleur, je suis preneur.

  6. #6
    Rédacteur/Modérateur
    Avatar de Skalp
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2006
    Messages
    1 694
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 694
    Par défaut
    Je ne connais pas SQL Server Integration Services, mais en faisant quelques recherches sur la connexion Excel en OleDB, je suis tombé sur un article montrant la possibilité de se connecter à un un fichier Excel en OleDB directement depuis SQL Server :

    Je ne sais pas si cela peut te convenir, mais l'avantage que j'y ai trouvé pour toi, c'est que la connexion peut être établie directement depuis SQL server.


    Sinon, il y a toujours la possibilité de gérer la connexion OleDB, avec ADO.NET :

  7. #7
    Membre très actif Avatar de Nako_lito
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Mai 2008
    Messages
    793
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Mai 2008
    Messages : 793
    Par défaut
    Je vais rajouter ma nouvelle demande a la suite de celle ci, dans l'espoir que qqn la lise ^^

    alors, voila, maintenant que je sais comment extraire, je voudrais faire ce qui vient juste avant, c'est a dire: traiter tout les fichier excel d'un dossier spécifié et pour chaque (ca sent la boucle foreach a plein nez ca ^^) fichier excel, les extraire en CSV.

    donc les etapes sont (je pense): trouver le dossier, lister tout les .xls, traiter les xls les uns apres les autre.

    dossier
    fichier1.xls
    fichier2.xls
    fichier3.xls

    que ca ressemble a ca:

    dossier
    fichier1Feuil1.csv
    fichier1Feuil2.csv
    fichier1Feuil3.csv

    fichier2Feuil1.csv
    fichier2Feuil2.csv
    fichier2Feuil3.csv

    fichier3Feuil1.csv
    fichier3Feuil2.csv
    fichier3Feuil3.csv

    Language : C# ou ligne de commande.

    Merci par avance.

  8. #8
    Rédacteur/Modérateur
    Avatar de Skalp
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2006
    Messages
    1 694
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 694
    Par défaut
    Je t'ai déjà donné la boucle pour convertir un fichier Excel.

    Reste la boucle pour parcourir un dossier et récupérer tous les fichiers Excel : regarde la méthode System.IO.Directory.GetFiles(), en mettant les bons paramètres pour ne sélectionner que les fichiers Excel... voir la msdn.

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

Discussions similaires

  1. traitement fichier excel
    Par mahis_ dans le forum kettle/PDI
    Réponses: 2
    Dernier message: 14/04/2009, 15h43
  2. [POI] Traitement fichier EXCEL
    Par the java lover dans le forum Documents
    Réponses: 3
    Dernier message: 23/06/2008, 11h45
  3. Traitement Fichier EXCEL.
    Par parp1 dans le forum Bibliothèques tierces
    Réponses: 2
    Dernier message: 19/03/2007, 19h23
  4. traitement fichier excel
    Par kirua2150 dans le forum Access
    Réponses: 6
    Dernier message: 10/01/2007, 19h00
  5. Traitement fichier excel avec vb6
    Par couscoussier dans le forum VB 6 et antérieur
    Réponses: 12
    Dernier message: 12/09/2006, 16h15

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