Comment peut-on ouvrir Excel (le programme, pas un fichier) à partir d’un programme Perl?

J’ai actuellement un programme perl dans Windows qui crée et remplit un fichier Excel via Spreadsheet :: WriteExcel, mais j’aimerais que ce fichier soit ouvert à la fermeture de mon programme. J’ai essayé de chercher des informations sur Google, mais tout ce que j’ai trouvé était comment ouvrir et lire des fichiers Excel dans perl. Quelqu’un pourrait-il m’aider?

Je recommande ceci:

`your_file.xls`; 

Il exécute simplement une commande système. En supposant que les fichiers Excel sont configurés pour être ouverts par défaut avec Excel, cela fonctionnera (l’ajout du chemin d’access complet au fichier peut être nécessaire ou non, selon votre configuration).

Autres options:

 system("your_file.xls"); `C:\\Program Files\\...\\excel.exe your_file.xls`; system("C:\\Program Files\\...\\excel.exe your_file.xls"); 

Je voudrais utiliser Win32 :: OLE pour cela. OLE est les extensions Office que vous pouvez utiliser pour effectuer des tâches avec les applications. Cet exemple devrait fonctionner (je ne l’ai pas testé):

 use ssortingct; use warnings; use Win32::OLE; use Win32::OLE::Const 'Microsoft Excel'; my $excel = Win32::OLE->GetActiveObject('Excel.Application') || Win32::OLE->new( 'Excel.Application', 'Quit' ); $excel->{Visible} = 1; 

Si vous vous retrouvez dans cette voie, voici une référence aux commandes Excel 2007 .

Ce qui suit fonctionne pour moi Il ne nécessite aucun module supplémentaire.

 system "start excel $file"; 

Vous pouvez utiliser la commande exec en Perl comme ceci:

 my $excel_file = "file.xlsx"; exec "cmd", "/c", "start", $excel_file; 

Cela ouvrira le programme par défaut de votre système pour ouvrir les fichiers xlsx. J’aime cette option car si l’utilisateur ne dispose pas d’Excel, uniquement libreoffice (par exemple), le système ouvrira le fichier avec libreoffice.