我正在使用以下方面遇到问题:
use Win32::OLE::Const 'Microsoft Excel';
use Win32::OLE::Const 'Microsoft Office .* Object Library';
使用上面的库,我可以阅读Excel工作表,并在我的硬盘上的本地副本上安装Excel工作表和Perl脚本时解析数据。但是,如果位于共享网络驱动器上,则Perl无法打开Excel工作表。将打开Excel应用程序,并出现一个对话框,尝试下载工作表。
我用来打开工作表的代码如下:
my $filename = cwd() . "\\sheet.xls";
$Win32::OLE::Warn = 3;
my $ole = Win32::OLE->new('Excel.Application', 'Quit') or die "$!";
$ole->{Visible} = 0;
my $xls = $ole->{Workbooks}->Open($filename);
my $ExcelSheetHandle = $xls->Worksheets(1);
执行Perl脚本时的结果是一个“下载”对话框,其中包含一个语句:“正在下载:\\ nw_share \ sheet.xls”,这是正确的路径。最终对话框消失,Excel报告无法下载文件。
将脚本和工作表移动到我的本地硬盘时,它按预期工作。