sessime (Utilisateur)
Fresh Boarder
Messages: 3
|
|
Excel vers fichiers Texte depuis 1 Mois, 2 Semaines
|
Karma: 0
|
|
Salut,
Je suis entrain de mettre en place un projet sous Talend qui doit me permettre de transformer le fichier Excel en fichier texte.
Vous pourriez me donner les indications sur la demarche a suivre pour formater mon fichier excel et avoir en sortie un fichier texte.
Par avance merci
|
|
|
|
|
|
|
L'administrateur a désactivé l'accès public en écriture.
|
choupe (Utilisateur)
Platinum Boarder
Messages: 470
|
|
Re:Excel vers fichiers Texte depuis 1 Mois, 1 Semaine
|
Karma: 18
|
|
Bonjour,
Pour créer une metadata Excel :
- Aller dans MEtadata,
- Choisir Fichier Excel
- Donner un nom au metada puis suivant
- Sélectionner un fichier Excel
- Selectionner une feuille du fichier Excel
- Suivant
- Indiquer si la feuille contient en première ligne les entetes
- Suivant
Pour l'export dans un fichier text :
- Placer le fichier excel dans un job entant qu'Input
- placer un tFileOutputDelimited et y spécifier le chemin du fichier cible
- relier ces 2 composants par un lien Main/Principal
- Dans le tFileOutputDelimited, sélectionner "Synchroniser les colonnes"
- Le job est pret
tu peux utiliser un tMap ou un tJavaRow pour faire des transformations si besoin.
|
|
|
|
|
|
|
L'administrateur a désactivé l'accès public en écriture.
|
sessime (Utilisateur)
Fresh Boarder
Messages: 3
|
|
Re:Excel vers fichiers Texte depuis 1 Mois, 1 Semaine
|
Karma: 0
|
|
Salut
Merci pour votre réaction.
En effet,j'ai opté pour une approche Tmap(puisque mon fichier subit des transformations) mais j'ai de serieux problmes a l'etape de generation.
-->Fichier en entrée (Excel)
id|name|email
1 |ta |
Cet e-mail est protégé contre les robots collecteurs de mails, votre navigateur doit accepter le Javascript pour le voir
2 |toto|
Cet e-mail est protégé contre les robots collecteurs de mails, votre navigateur doit accepter le Javascript pour le voir
3 |tat |
Ce fichier doit etre transformé pour avoir un fichier texte en sortie mais avec les trois colonnes sur des longueurs fixes
La colonne ID sera sur 4 positions,la colonne NAME sur 20 positions juste apres ID et la derniere colonne EMAIL sur 62 positions.
Pour ce faire j'ai defini au niveau de Tmap des transformations en utilisant les fonctions de gestion de chaine
StringHandling.LEFT(StringHandling.TRIM(row1.email)+StringHandling.SPACE(62),62)
A la complitation du Job,j'ai des erreurs sur la fonction Trim
ERREUR()
Apres analyse,je constate que s'il y a des lignes d'une colonne qui est vide c'est pourquoi il ya erreur par exemple la ligne 3 genere des erreurs donc
pas de fichier texte en sortie.
Je rappelle que mon projet est sous JAVA et non Perl.
Je demande à la communauté de me donner des astuces pour contourner ce probleme au cas la transformation rencontre des vides sur une colonne.
Par avance merci pour votre retour.
@+
|
|
|
|
|
|
|
L'administrateur a désactivé l'accès public en écriture.
|
choupe (Utilisateur)
Platinum Boarder
Messages: 470
|
|
Re:Excel vers fichiers Texte depuis 1 Mois, 1 Semaine
|
Karma: 18
|
|
je trouve ta fonction compliquée pour java :
StringHandling.LEFT(StringHandling.TRIM(row1.email)+StringHandling.SPACE(62),62)
il doit exister une autre fonction plus claire.
mais pour ton probème de null, tu peux tester la valeur de email comme suite :
StringHandling.LEFT(StringHandling.TRIM((row1.email==null)?"":row1.email)+StringHandling.SPACE(62),62)
ainsi tu n'aura plus d'erreur
pour rappel l'opérateur ternaire (condition)?valtrue:valfalse se traduit par
if (condition) return valtrue; else return valfalse;
sinon je pense qu'il faut utiliser le composant tFileOutputPositional. Dans ce type de fichier tu n'as pas des séparateurs mais des longeurs de champs. ceci devrait grandement t'aider.
|
|
|
|
|
|
|
L'administrateur a désactivé l'accès public en écriture.
|
sessime (Utilisateur)
Fresh Boarder
Messages: 3
|
|
Re:Excel vers fichiers Texte depuis 1 Mois, 1 Semaine
|
Karma: 0
|
|
Salut,
J'ai essayé votre proposition d'operateur ternaire mais j'ai une erreur JVM.
J'ai donc opté pour la seconde approche TfileOutputPositionnal ,j'ai toujours la meme erreur.
Voici l'erreur :
Could not create the Java virtual machine.
Error occurred during initialization of VM
Could not reserve enough space for object heap
Job TRANSFORMATIONCUSTOMER terminé à 15:38 08/02/2010. [Code sortie=1]
Donnez mes indications si possible.
|
|
|
|
|
|
|
L'administrateur a désactivé l'accès public en écriture.
|
choupe (Utilisateur)
Platinum Boarder
Messages: 470
|
|
Re:Excel vers fichiers Texte depuis 1 Mois, 1 Semaine
|
Karma: 18
|
|
cette erreur n'est pas dû à Talend à proprement dit mais à la JVM. Il y a un problème de gestion mémoire. Tu lances via Talend ou via le job exporté ?
Si via le job exporté, il faut modifier le .bat lancant le job pour y diminuer le paramètre -Xmx
Si par talend, cette diminution se fait via
- le menu Fenete
- sous-menu Préférence
- Talend
- Run/debug
- Arguments VM de lancement des Job
|
|
|
|
|
|
|
L'administrateur a désactivé l'accès public en écriture.
|
|