VivoBaggio
51Messages postés
27 février 2007Date d'inscription
18 janv. 2008 à 14:22
Bon, j'avance petit à petit.
J'ai réussi à faire ce que je voulais, mais pas dynamiquement.
C'est à dire que je sais par avance le nombre de colonne qu'il y aura dans mon fichier excel lors de sa création, car je sais à l'avance combien de valeur sont délimité dans le fichier texte.
Moi, ce que j'aimerais rendre automatique dans ce code, c'est d'obtenir le fichier excel, sans avoir renseigné en dur dans le code le nombre de variables et donc de colonne.
Merci de votre aide.
Voici où en ait mon code :
use strict;
use warnings;
use Spreadsheet::WriteExcel;
# Information du programme
print "Vous devez insérer le fichier texte (avec séparateur à virgule) à la racine de C: avant de continuer le lancement du programme !\n";
print "Si vous ne l'avez pas fait, quittez le programme !\n";
system("pause");
# Saisie du nom du fichier d'entrée
print "Saisissez le nom du fichier texte ! ";
chomp(my $name_file=<stdin>);
print "Vous avez saisi : $name_file\n";
# Saisie de l'extension du fichier d'entrée
print "Saisissez l'extension du fichier texte ! ";
chomp(my $name_extension=<stdin>);
print "Vous avez saisi : $name_extension\n";
# Initialisation des variables
my $cpt;
# Déclaration du fichier d'entrée
# "unless" sert à détecter si le fichier existe ou non
unless (open FILETEXT, my $file = "C:\\${name_file}.${name_extension}")
{
print "Fichier Texte inexistant.\nLe programme va fermer.\n";
system("pause");
# Fermeture du programme
exit();
}
else
{
my $file = "C:\\${name_file}.${name_extension}";
# Utilisation de la librairie WriteExcel
my $excel = Spreadsheet::WriteExcel->new("C:\\${name_file}.xls");
my $worksheet_excel = $excel->add_worksheet("Fichier Client");
# Parcours du fichier texte
while(my $ligne = <FILETEXT>)
{
# Association des variables aux valeurs à chaque fois qu'il rencontre un ";"
my ($var1,$var2,$var3,$var4) = split /;/,$ligne;
# Incrémentation du compteur
$cpt++;
# Suppression du retour chariot dans un champ
$var4 =~s/\n//;
# Affichage des variables dans les colonnes correspondantes
$worksheet_excel -> write('A'.$cpt, $var1);
$worksheet_excel -> write('B'.$cpt, $var2);
$worksheet_excel -> write('C'.$cpt, $var3);
$worksheet_excel -> write('D'.$cpt, $var4);
}
# Fermeture du fichier d'entrée
close FILETEXT;
}
system("pause");