Manipuler des fichiers Excel avec le Perl

Logo Excel

Si comme moi vous utilisez Perl comme langage de programmation et que vous voulez manipuler des fichiers Excel sans pour autant apprendre le langage VBA, alors cet article est fait pour vous.Tout d’abord, il faut que vous sachiez que le module que je vais vous présenter nécessite qu’Excel soit installé sur votre machine. Le plugin en question est : Win32::OLE.

Voici avec quoi nous allons commencer. Ouvrir un fichier Excel :

use Win32::OLE;
my $fichierExcel = 'fich1.xls';
my $fichierExcelOut = 'fich2.xls';

Avec ce code, vous avez vos deux variables qui pointent vers des fichiers Excel. N’oubliez pas de tester qu’Excel est bien installé sur la machine qui exécute le script :

eval
{
 $ex = Win32::OLE->GetActiveObject('Excel.Application')
};
die "Excel not installed" if $@;

Vous aurez donc un message d’erreur si Excel n’existe pas.

Nous allons maintenant effectuer un lien OLE vers l’application :

unless (defined $ex) {
$ex = Win32::OLE->new('Excel.Application', sub {$_[0]->Quit;})
or die "Cannot start Excel";
}

Nous pouvons ensuite ouvrir le fichier excel que nous voulons manipuler :

$book = $ex->Workbooks->Open("c:\Excel\monFicExcel.xls");
$sheet = $book->Worksheets("maFeuilleExcel");

Pour mettre à jour la cellule excel :

$sheet->Cells($ligne,$colonne)->{Value} = "$valeur";

Enfin on sauvegarde notre fichier

$book->Save();

Voici le script en entier pour les aficionados du copier coller

use Win32::OLE;
my $fichierExcel = 'c:\Excel\monFichierExcel.xls';
eval
{
 $ex = Win32::OLE->GetActiveObject('Excel.Application')
};
die "Excel not installed" if $@;
unless (defined $ex) {
$ex = Win32::OLE->new('Excel.Application', sub {$_[0]->Quit;})
or die "Cannot start Excel";
 
}
 
$book = $ex->Workbooks->Open($fichierExcel);
$sheet = $book->Worksheets("maFeuilleExcel");
$sheet->Cells($ligne,$colonne)->{Value} = "$valeur";
$book->Save();

Si vous avez des suggestions pour des améliorations laissez un commentaire.
A bientôt pour d’autres conseils pratiques.

This entry was posted in Programmation and tagged , , , , . Bookmark the permalink.

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

*

Vous pouvez utiliser ces balises et attributs HTML : <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre lang="" line="" escaped="">