我正在使用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上,但我可以找到究竟是什么问题?
答案 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)
我遇到了类似的问题
当我给出文件的绝对路径时,它为我工作了