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.