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

Modules Perl Discussion :

Excel -> txt


Sujet :

Modules Perl

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Novembre 2002
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2002
    Messages : 6
    Points : 2
    Points
    2
    Par défaut Excel -> txt
    Salut
    je veux savoir s'il y a un moyen de changer un fichier Excel en fichier text avec Perl.
    Merci

  2. #2
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 23
    Points : 27
    Points
    27
    Par défaut
    Hallu,

    Pourquoi veux tu te compliquer la vie avec du perl.
    Si tu sauvegardes ton fichier Excel en .csv manuellement , il sera lisible par un éditeur de texte standard.
    Hi You,
    My dream team, Steph dans l'tuyau , Leon Tom and p'tit bouchon.Oh Ouioui !!!
    Please , keep cool with me and call me by my name.
    --> Haiti

  3. #3
    En attente de confirmation mail
    Inscrit en
    Mars 2002
    Messages
    67
    Détails du profil
    Informations forums :
    Inscription : Mars 2002
    Messages : 67
    Points : 75
    Points
    75
    Par défaut
    de mémoire il me semble que c'est le module Spreadsheet:arseExcel qui le permet. L'inverse est possible avec WriteExcel.

    Christophe T.

  4. #4
    Membre chevronné
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2003
    Messages
    1 581
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2003
    Messages : 1 581
    Points : 2 029
    Points
    2 029
    Par défaut
    sinon, il faut voir avec win32::OLE que j'utilise pour convertir des fichiers txt en fichiers xls, il me semble que l'inverse est tout à fait faisable

  5. #5
    Candidat au Club
    Profil pro
    Inscrit en
    Novembre 2002
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2002
    Messages : 6
    Points : 2
    Points
    2
    Par défaut
    Je travaille sur Linux Red Hat donc voilà. Sinon j'ai un peu chercher sur SpreadSheet:arserExcel et j'ai pas trouvé des choses claires çà m'a l'air bien compliqué.

  6. #6
    En attente de confirmation mail
    Inscrit en
    Mars 2002
    Messages
    67
    Détails du profil
    Informations forums :
    Inscription : Mars 2002
    Messages : 67
    Points : 75
    Points
    75
    Par défaut
    voici un petit exemple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
     
    use Spreadsheet::ParseExcel;
     
    my $oExcel = new Spreadsheet::ParseExcel;
    if (defined(my $classeur = $oExcel->Parse($chemin_fichier_excel)))	{	        #classeur qui peut être composé de +sieurs feuilles
    	my($noLigne, $noCol, $hdlFeuille, $hdlCellule);
    	#on vérifie le nbre de feuilles
     
    	#un classeur pouvant contenir des feuilles vides (elles sont prises en compte par SheetCount), on ne va utiliser que la première feuille
    	open(FICHIER_TEXTE, "> mon_fichier.txt");
     
    	#on ne traite que la 1ère feuille:
    	#on va en faire un format txt avec un délimiteur et un séparateur
    	#on risque de trouver la "," ou le ";" dans un des champs: on ne peut pas les virer car ce peut être des champs à ne pas traiter
    	#donc je propose de mettre un délimiteur " et un séparateur ,
     
    	$hdlFeuille = $classeur->{Worksheet}[0];
    	for(my $noLigne = $hdlFeuille->{MinRow} ;	defined $hdlFeuille->{MaxRow} && $noLigne <= $hdlFeuille->{MaxRow} ; $noLigne++) {
     
    		for(my $noCol = $hdlFeuille->{MinCol} ; defined $hdlFeuille->{MaxCol} && $noCol <= $hdlFeuille->{MaxCol} ; $noCol++) {
    			$hdlCellule = $hdlFeuille->{Cells}[$noLigne][$noCol];
    			if($hdlCellule)	{
    				# la cellule pourrait contenir des retours à la ligne: on les remplace par un espace
    				my $contenu_cellule = $hdlCellule->Value;
    				$contenu_cellule =~ s/[\r\n]/ /g;
    				print FICHIER_TEXTE "\"", $contenu_cellule, "\";" ;
    			}
    			else	{
    				print FICHIER_TEXTE "\"\";" ;
    			}
    		}
    		print FICHIER_TEXTE "\n";
    	}
     
    	close (FICHIER_TEXTE);
    }

  7. #7
    Candidat au Club
    Profil pro
    Inscrit en
    Novembre 2002
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2002
    Messages : 6
    Points : 2
    Points
    2
    Par défaut
    Merci Christophe pour le code. Je vais l'essayer!

  8. #8
    Candidat au Club
    Profil pro
    Inscrit en
    Novembre 2002
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2002
    Messages : 6
    Points : 2
    Points
    2
    Par défaut
    Non çà ne marche pas !!! En fait il bloque la machine. je ne sais pas si çà vient du code ou d'autres choses.
    c pas grave!!

  9. #9
    Nouveau Candidat au Club
    Inscrit en
    Août 2006
    Messages
    1
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 1
    Points : 1
    Points
    1
    Par défaut Excel -> txt
    Pour que le script fonctionne, il suffit de préciser à quel fichier correspond la variable $chemin_fichier_excel
    Par exemple : my $chemin_fichier_excel='./in_file.xls';

Discussions similaires

  1. Export tableau Excel vers txt
    Par TheRealMike dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 04/05/2009, 08h53
  2. Pb conversion Excel en .txt
    Par steveWC dans le forum Excel
    Réponses: 1
    Dernier message: 25/08/2008, 12h17
  3. Fichier excel --> Fichier .txt
    Par narmika dans le forum Langage
    Réponses: 6
    Dernier message: 18/09/2007, 14h48
  4. extraction particulière d'excel vers txt
    Par firebomber dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 06/09/2006, 19h56
  5. exportation excel vers txt
    Par actaruss dans le forum Macros et VBA Excel
    Réponses: 11
    Dernier message: 06/09/2006, 09h38

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