Вот скелет того, что может работать.
use strict;
use warnings;
use Win32::OLE;
my $excel= Win32::OLE->new('Excel.Application')
or die "Could not create Excel.Application!\n"
;
$excel->Workbooks->open( 'C:\Users\Me\Documents\Book1.xlsx' );
$excel->run( 'Book1!Macro1' );
$excel->quit;
Один из самых надежных способов сделать это - просто записать макрос открытия электронной таблицы и запуска макроса.А затем взгляните на сгенерированный код макроса и преобразуйте его в Perl.Помните, что объект OLE является объектом приложения.
9/22/2010 - я добавил quit
, чтобы остановить запуск Excel.