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 :

Convertir XML à XLSX


Sujet :

C#

  1. #1
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2017
    Messages
    107
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2017
    Messages : 107
    Points : 68
    Points
    68
    Par défaut Convertir XML à XLSX
    Bonjour la communité,
    Je m'adresse à vous afin de savoir si vous pourriez m'aider à développer un script C# qui charge un fichier XML et le convertir à un fichier Excel pour que je puisse l'intégrer à mon Job SSIS qui fait un croisement de données avec ce fichier Excel.
    Je n'ai jamais fait du C# donc si vous pouvez me proposer des liens ou d'autres forums a consulter je serai très reconnaissant.
    Merci d'avance.

  2. #2
    Expert confirmé
    Avatar de popo
    Homme Profil pro
    Analyste programmeur Delphi / C#
    Inscrit en
    Mars 2005
    Messages
    2 667
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Analyste programmeur Delphi / C#
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 2 667
    Points : 5 235
    Points
    5 235
    Par défaut
    Oui on pourrait mais pas avec les éléments que tu fournis.

    Au passage SSIS sait travailler avec des XML.
    Donc avant de partir dans un développement vérifie ce que tu peux faire à partir de ton fichier XML.

  3. #3
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2017
    Messages
    107
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2017
    Messages : 107
    Points : 68
    Points
    68
    Par défaut
    Bonsoir,
    Merci pour votre réponse. J'ai déjà essayé avec la XML Source que SSIS fourni mais il y a une perte d'une information importante et vu que le fichier que je reçois il n'est forcément toujours avec le même schéma XML du coup ça va être compliqué de l'automatiser.

  4. #4
    Expert confirmé
    Avatar de popo
    Homme Profil pro
    Analyste programmeur Delphi / C#
    Inscrit en
    Mars 2005
    Messages
    2 667
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Analyste programmeur Delphi / C#
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 2 667
    Points : 5 235
    Points
    5 235
    Par défaut
    Citation Envoyé par slakhdine Voir le message
    et vu que le fichier que je reçois il n'est forcément toujours avec le même schéma XML du coup ça va être compliqué de l'automatiser.
    Le problème sera exactement le même avec un code C#.
    Comment veux tu automatiser si le schéma change.

    La seule différence, c'est qu'en C# tu peux rajouter tes propres contrôles pour détecter le format.
    Mais cela implique tout de même d'avoir des schémas connus à l'avance.
    Et là, on en revient à ma première remarque : tu ne fournis pas le détail de ce que tu veux, donc, il va être compliqué de t'aider.

    Donc...
    En premier lieu, il faut faire une liste exhaustive de ce que tu peux avoir en entrée (les différents formats de XML que tu vas rencontrer)
    En second lieu, ce que tu souhaites obtenir en sortie.

  5. #5
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2017
    Messages
    107
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2017
    Messages : 107
    Points : 68
    Points
    68
    Par défaut
    Bonjour,

    T'as raison, dans un premier temps je pars sur un modèle de schéma XML fixe.
    En entrée je veux qu'il prend comme source un fichier XML avec son schéma XSD et le convertir en fichier Excel (XLSX) pour pouvoir le charger dans mon DATA FLOW qui prend en source de donnée un fichier Excel. voici un aperçu :

    Nom : job.PNG
Affichages : 58
Taille : 19,3 Ko

    Je ne peux pas utiliser la tache XML source editor parce que mon xml contient trop de niveaux (nœuds), du coup quand je l'utilise je n'arrives pas à combiner les éléments ensemble parce que ils n'ont pas forcément un lien ( ids manquants ) ou c'est très compliqué pour moi de manipuler les fichiers xml. ci dessous un aperçu du XML source editor :

    Nom : xml.PNG
Affichages : 58
Taille : 6,9 Ko

    Merci pour ton temps consacré pour me répondre.

  6. #6
    Expert confirmé
    Avatar de popo
    Homme Profil pro
    Analyste programmeur Delphi / C#
    Inscrit en
    Mars 2005
    Messages
    2 667
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Analyste programmeur Delphi / C#
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 2 667
    Points : 5 235
    Points
    5 235
    Par défaut
    Ce que tu montres, c'est le Dataflow une fois ton fichier Excel obtenu.
    Cela n'apporte rien à la discussion puisque ton problème (si j'ai bien compris) réside dans la constitution de ce fichier Excel.

    Encore une fois, pour obtenir ce que tu veux il faut au préalable connaitre :
    - un exemple de ton XML au départ,
    - un exemple de ton fichier Excel en sortie
    - la correspondance entre les nœuds de ton XML et les colonnes de ton fichier Excel

  7. #7
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2017
    Messages
    107
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2017
    Messages : 107
    Points : 68
    Points
    68
    Par défaut
    Voici un exemple de fichier xml de source ( qui contient une ligne. de base il contient plusieurs mais de même structure) , et le même en l'ouvrant sur Excel qui sera mon fichier de sortie ( avec plusieurs lignes pour avoir une idée de quoi doit ressembler mon fichier de sortie.

    FICHIER DE SOURCE.xmlFICHIER DE DESTINATION.xlsx

  8. #8
    Expert confirmé
    Avatar de popo
    Homme Profil pro
    Analyste programmeur Delphi / C#
    Inscrit en
    Mars 2005
    Messages
    2 667
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Analyste programmeur Delphi / C#
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 2 667
    Points : 5 235
    Points
    5 235
    Par défaut
    Ton XML n'a rien d'extraordinaire, tu devrais pouvoir le désérialiser avec une structure de classe identique et XmlSerializer.

    Pour le fichier Excel, c'est plus compliqué mais rien d'insurmontable.
    Il faut déjà faire un mapping entre le structure du XML et les colonnes du fichier.

    De ce que je peux voir, tu vas
    - avoir autant de lignes que tu as de demandes.
    - les données de l'en-tête répétée sur chaque ligne dans les colonnes A jusqu'à E.
    - pour chaque demande les données globales sont des les colonnes F à H
    - pour chaque demande les données du représentant sont dans les colonnes I à O
    - ensuite les colonnes depuis O sont utilisées pour les données de chaque demandeur mais du coup tu ne sais pas à quelle colonne ça s'arrête.
    - les données du décès arrivent après, ce qui implique qu'il va falloir calculer la cellule où elles commencent en fonction de la demande qui a le plus de demandeur sinon tu vas avoir un décalage d'une ligne à l'autre
    - et enfin les données sur les documents.

    Commence donc par le plus facile, la désérialisation de tes données.
    Ensuite, suivant comment tu avances, on avisera

Discussions similaires

  1. convertir XML en XMI
    Par Pikouse dans le forum Format d'échange (XML, JSON...)
    Réponses: 0
    Dernier message: 20/04/2009, 11h22
  2. [XSLT] Convertir XML to HTML
    Par gargantua dans le forum Format d'échange (XML, JSON...)
    Réponses: 4
    Dernier message: 31/03/2009, 16h10
  3. Convertir xml en csv
    Par antitrust56 dans le forum XML/XSL et SOAP
    Réponses: 2
    Dernier message: 12/11/2008, 09h43
  4. convertir 1 .xlsx en .xls
    Par tigdub1gal dans le forum Excel
    Réponses: 2
    Dernier message: 04/05/2007, 17h14
  5. [DOM XML] Convertir xml file dans DB mySQL
    Par patayotte dans le forum Bibliothèques et frameworks
    Réponses: 1
    Dernier message: 29/11/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