尝试使用IIS从Perl打开Excel文件时出错

时间:2014-11-17 04:51:51

标签: excel perl iis win32ole

我正在使用IIS运行来自c#应用程序的perl脚本文件,因为我想打开一个已经存在的Excel文件,我使用以下行打开它:

$ex = Win32::OLE->new('Excel.Application', sub {$_[0]->Quit;}) 
or die "Oops, cannot start Excel";//upto this working fine

$book = $ex->Workbooks->Open($fileName); //this line only giving error

现在我在开放时收到错误如下:

  

“Microsoft Office Excel”中的OLE异常:

     

Microsoft Office Excel无法访问该文件   'C:\ GWATS \报告\月,17-2014_10-06-36 \ GES-11n_IOT_10-06-37.xls'。有   几个可能的原因:

     

•文件名或路径不存在。

     

•该文件正由另一个程序使用。

     

•您尝试保存的工作簿与当前打开的工作簿同名   工作簿。

     

Win32 :: OLE(0.1711)错误0x800a03ec   在METHOD / PROPERTYGET中“打开”在C:\ GWATS \ Lib \ System \ Report.pm第611行。

该文件肯定存在我验证了。

当我在cmd中直接运行它时,此脚本也正常工作。这里有什么问题,我认为问题出在IIS上,但我可以找到究竟是什么问题?

3 个答案:

答案 0 :(得分:1)

尝试下面的perl脚本。如果仍然存在一些错误,请告诉我:

<强>代码:

   use Win32::OLE qw(in with);
   use Win32::OLE::Const 'Microsoft Excel'; 

   my $Excel = Win32::OLE->GetActiveObject('Excel.Application')
     || Win32::OLE->new('Excel.Application', 'Quit');
    my $filename = 'C:\GWATS\Report\Nov-17-2014_10-06-36\GES-11n_IOT_10-06-37.xls'
    my $book  = $Excel->Workbooks->Open($filename);

答案 1 :(得分:0)

打开Windows资源管理器

根据您是否安装了32位或64位版本的办公室,您需要执行以下一项(或两项):

32位Office安装:导航到C:\ Windows \ System32 \ config \ systemprofile

64位Office安装:导航到C:\ Windows \ SysWOW64 \ config \ systemprofile

验证文件夹&#34;桌面&#34;存在(如果不存在则创建它)

右键单击&gt;特性

在安全选项卡上:使用默认权限添加运行站点的帐户(例如:DefaultAppPool)(读取和执行;列出文件夹内容;阅读)

答案 2 :(得分:0)

我遇到了类似的问题

当我给出文件的绝对路径时,它为我工作了