Précédent   Forum des professionnels en informatique > Logiciels > Solutions d'entreprise > Business Intelligence > ETL > Talend
Talend Forum d'entraide sur Talend (Talend Open Studio, ...). Avant de poster --> FAQ Talend, Tutoriels Talend
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 16/05/2011, 10h03   #1
Invité de passage
 
Inscription : avril 2011
Messages : 46
Détails du profil
Informations forums :
Inscription : avril 2011
Messages : 46
Points : 3
Points : 3
Par défaut Talend : Problème Conversion Excel - XML

Bonjour,

J'ai un petit problème,
Je dois convertir un fichier excel en XML. Le fichier excel contient beaucoup de feuilles, toutes de format différent.

En fait, je dois insérer toutes les infos dans un seul fichier, et chaque itération écrase le résultat de la précédente. Je ne sais pas comment faire pour ne pas avoir ce problème...
Je pense que cela vient du fait que j'insère chaque feuille dans un fichier XML différent qui pointe en fait vers la même cible, je voudrais faire un deuxième tMap pour regrouper chaque fichier XML (de chaque feuille) dans un seul fichier XML en sortie mais cela n'a pas l'air possible...

J'ai mis en pièce jointe, mon job talend. Je ne sais pas si j'ai été très clair...

Merci d'avance
Images attachées
Type de fichier : png Capture.PNG (41,7 Ko, 6 affichages)
chtrousselle est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/05/2011, 12h28   #2
Membre émérite
 
Homme Nicolas Saumande
Architecte Décisionnel
Inscription : février 2008
Messages : 693
Détails du profil
Informations personnelles :
Nom : Homme Nicolas Saumande
Âge : 36
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Architecte Décisionnel

Informations forums :
Inscription : février 2008
Messages : 693
Points : 879
Points : 879
Bonjour,

Est-ce qu'il ne suffit pas de cocher l'option 'Append the source xml file' dans les tAdvancedFileOuputXML ?

Nicolas
DevNico est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/05/2011, 13h11   #3
Invité de passage
 
Inscription : avril 2011
Messages : 46
Détails du profil
Informations forums :
Inscription : avril 2011
Messages : 46
Points : 3
Points : 3
Je ne sais pas... je peux toujours essayer mais où as tu cochez cette option ? je ne l'ai pas trouvé
chtrousselle est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/05/2011, 14h00   #4
Membre émérite
 
Homme Nicolas Saumande
Architecte Décisionnel
Inscription : février 2008
Messages : 693
Détails du profil
Informations personnelles :
Nom : Homme Nicolas Saumande
Âge : 36
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Architecte Décisionnel

Informations forums :
Inscription : février 2008
Messages : 693
Points : 879
Points : 879
C'est sur l'onglet Basic settings du composant. C'est la première case à cocher.
Je l'ai sur une version 4.1.1
DevNico est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/05/2011, 20h35   #5
Invité de passage
 
Inscription : avril 2011
Messages : 46
Détails du profil
Informations forums :
Inscription : avril 2011
Messages : 46
Points : 3
Points : 3
Non c'est pas ça... ça ne fonctionne pas
chtrousselle est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/05/2011, 10h23   #6
Candidat au titre de Membre du Club
 
Inscription : mai 2003
Messages : 19
Détails du profil
Informations forums :
Inscription : mai 2003
Messages : 19
Points : 13
Points : 13
Bonjour,

Techniquement le XML n'est pas vraiment facile à fusionner (notamment dans le choix de la balise de type "Boucle" et si elle est unique...).
Il (me) reste donc 2 possibilités pour approcher ton problème :
- Soit tes données sont "rapprochables" d'un format simple et commun et dans ce cas, il vaut mieux les rapprocher avant de les transformer en XML. J'entends par format simple, un bon vieux "ligne-colonne" (2 dimensions donc).
- Soit tes données sont regroupables (une troisième dimension due au type de la donnée) et alors je pense que tu vas devoir faire le travail à la main :
1- Création de l'en-tête du XML jusqu'à la balise déclarative de données
2- Ajout des enregistrements XML de type 1
3- Ajout des enregistrements XML de type 2...
4- Ajout des balises de fin.
Dans le composant "tAdvancedFileOutputXML", il est possible de cocher l'option "append" dont vous parliez ci-dessus. Mais attention , cette manipulation est possible je pense que si ton fichier n'est pas déjà utilisé dans le job courant. C'est pourquoi, il te faut faire des sous-job pour "finir" le travail dans chaque étape et ainsi "persister" tes données dans le fichier XML commun.
Et si cela ne fonctionne toujours pas, il va falloir le faire avec un bon vieux code java !

Je ne sais pas si ça peut t'aider...je l'espère en tout cas.

Bonne journée et bon courage...

Yust...
Yust est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/05/2011, 11h41   #7
Invité de passage
 
Inscription : avril 2011
Messages : 46
Détails du profil
Informations forums :
Inscription : avril 2011
Messages : 46
Points : 3
Points : 3
Merci pour vos réponses très précises,

Yust : Oui le fichier XML à un format simple et commun pour toutes les feuilles, je voudrais justement regrouper les informations avant la conversion en utilisant un tMap mais il m'est impossible de faire le lien entre plusieurs feuilles Excel et un seul élément tMap... C'est en gros le coeur du problème. Aurais-tu une solution ?

Pour le code Java à la main...Ca me semble difficilement réalisable...^^

Merci pour ton aide !
chtrousselle est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/05/2011, 14h06   #8
Candidat au titre de Membre du Club
 
Inscription : mai 2003
Messages : 19
Détails du profil
Informations forums :
Inscription : mai 2003
Messages : 19
Points : 13
Points : 13
Re...

La première étape est donc de fusionner tes "feuilles" excel en une (ou un fichier csv).
Pour cela, tu va devoir faire plusieurs sous-job (en les reliant par une condition "OnSubjobOK"). Chaque sous-job lit une feuille de ton fichier excel et l'ajoute à un fichier csv commun.
Le résultat est un fichier csv prêt à être transformé en fichier XML (dans un sous-job).

Est-ce que ça répond à ta question ?

Yust...
Yust est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/05/2011, 16h14   #9
Invité de passage
 
Inscription : avril 2011
Messages : 46
Détails du profil
Informations forums :
Inscription : avril 2011
Messages : 46
Points : 3
Points : 3
Oui merci beaucoup! J'ai bien compris la méthode, je vais essayer tout ça !

Une seule question, je dois mettre quoi comme chemin au fichier excel regroupant les feuilles ??
Je t'ai mis en pièce jointe mon job, fais rapidement pour le moment
Images attachées
Type de fichier : png Capture.PNG (23,1 Ko, 6 affichages)
chtrousselle est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/05/2011, 16h56   #10
Membre habitué
 
Inscription : août 2005
Messages : 117
Détails du profil
Informations personnelles :
Âge : 29
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : août 2005
Messages : 117
Points : 145
Points : 145
Citation:
Envoyé par Yust Voir le message
Re...

La première étape est donc de fusionner tes "feuilles" excel en une (ou un fichier csv).
Pour cela, tu va devoir faire plusieurs sous-job (en les reliant par une condition "OnSubjobOK"). Chaque sous-job lit une feuille de ton fichier excel et l'ajoute à un fichier csv commun.
Le résultat est un fichier csv prêt à être transformé en fichier XML (dans un sous-job).

Est-ce que ça répond à ta question ?

Yust...
Oui, tu as aussi la possibilité de lire dans un seul job chacune de tes feuilles Excel et de les aggréger en un seul flux avec un tUnite pour ensuite traiter le flux directement dans ton tmap.
tetsu no tama est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/05/2011, 17h36   #11
Invité de passage
 
Inscription : avril 2011
Messages : 46
Détails du profil
Informations forums :
Inscription : avril 2011
Messages : 46
Points : 3
Points : 3
Oui, je venais de trouver cette méthode aujourd'hui, mais le problème c'est que mes feuilles excel n'ont pas le même schéma !
chtrousselle est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/05/2011, 15h47   #12
Invité de passage
 
Inscription : avril 2011
Messages : 46
Détails du profil
Informations forums :
Inscription : avril 2011
Messages : 46
Points : 3
Points : 3
tetsu no tama : j'ai fais comme tu m'as conseillé, avec tUnite, mais j'ai un problème : le chargement de la feuille en ordre 2 efface les opérations réalisées en ordre 1 donc au final j'ai qu'une partie des informations au niveau XML,en sortie. Vois-tu une solution ?

Merci d'avance
jai mis une capture en piece jointe
Images attachées
Type de fichier : png Capture.PNG (20,4 Ko, 5 affichages)
chtrousselle est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/05/2011, 16h29   #13
Membre habitué
 
Inscription : août 2005
Messages : 117
Détails du profil
Informations personnelles :
Âge : 29
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : août 2005
Messages : 117
Points : 145
Points : 145
Le tUnite semble bien fonctionner sur ton schéma :
10 lignes issues de ta première feuille et 20 de la deuxième feuille et 30 lignes après le tUnite.

Cependant tu n'as plus que 4 lignes en sortie de ton tmap, je chercherais sur les filtres que j'ai appliqué dans ce composant si j'étais toi.
tetsu no tama est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/06/2011, 10h02   #14
Invité de passage
 
Inscription : avril 2011
Messages : 46
Détails du profil
Informations forums :
Inscription : avril 2011
Messages : 46
Points : 3
Points : 3
Bonjour,

Me revoilà pour une question...
Je souhaite réunir 2 fichiers Excel en un seul fichier
Quel 'chemin' attribuer au fichier servant à regrouper pour lui dire que c'est là réunion des deux précédents ??

Capture d'écran en pièce jointe
Merci d'avance
Images attachées
Type de fichier : png Capture.PNG (12,8 Ko, 3 affichages)
chtrousselle est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 11h58.


 
 
 
 
Partenaires

Hébergement Web