如何从perl程序中打开Excel(程序,而不是文件)?

时间:2012-08-15 14:26:28

标签: windows perl excel

我目前在Windows中有一个perl程序,它通过Spreadsheet :: WriteExcel创建并填充excel文件,但是我希望在程序关闭时打开该文件。我尝试使用Google搜索信息,但我发现的只是如何在perl中打开和读取excel文件。有人能帮助我吗?

4 个答案:

答案 0 :(得分:3)

我推荐这个:

`your_file.xls`;

它只执行系统命令。假设Excel文件设置为使用Excel默认打开,这将起作用(根据您的设置,可能需要也可能不需要添加文件的完整路径。)

其他选择:

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

答案 1 :(得分:2)

我会使用Win32::OLE。 OLE是可用于执行应用程序任务的Office扩展。这个例子应该有用(我还没有测试过):

use strict;
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;

如果你最终沿着这条路走下去,here's a reference to the Excel 2007 commands

答案 2 :(得分:-1)

以下适用于我。它不需要使用任何其他模块。

system "start excel $file";

答案 3 :(得分:-1)

您可以在Perl中使用exec命令,如下所示:

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

这将打开系统中的默认程序以打开xlsx文件。 我喜欢这个选项,因为如果用户没有安装excel,只有libreoffice(例如),系统将使用libreoffice打开文件。