【发布时间】:2010-09-20 12:19:39
【问题描述】:
如何在使用 Perl 打开的 Excel 文件中运行宏?
【问题讨论】:
-
您是否安装了 Excel,或者您正在寻找纯 Perl 解决方案?
-
您使用的是哪个平台?您很可能必须通过 Excel 打开它,然后告诉 Excel 要做什么。这可能通过 Win32::OLE 很容易。
如何在使用 Perl 打开的 Excel 文件中运行宏?
【问题讨论】:
这里是一个可行的框架。
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 对象是 Application 对象。
2010 年 9 月 22 日 - 我添加了 quit 以阻止 Excel 运行。
【讨论】:
undef $excel; 最后会停止 excel.exe
$excel->quit() 以阻止进程运行。