免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1789 | 回复: 2

发现一个特别奇怪的问题,关于excel [复制链接]

论坛徽章:
0
发表于 2009-09-23 14:33 |显示全部楼层
use strict;
use Win32::OLE qw(in with);
use Win32::OLE::Const 'Microsoft Excel';
$|=1;

my $inPutFile=$ARGV[0];
print "正在处理, 请稍候...\n";
       
       
my $Excel = Win32::OLE->GetActiveObject('Excel.Application') || Win32::OLE->new('Excel.Application', 'Quit');  
$Excel->{'Visible'} = 0;                #0 is hidden, 1 is visible
$Excel->{DisplayAlerts}=1;        #0 is hide alerts

my $Book = $Excel->Workbooks->Open($inPutFile) or die("Cannot openinPutFile!";

上面的代码,处理一个excel文件,发现一个奇怪的问题,若$inPutFile是相对路径,比如说perl test.pl   11.xls则报错,最后一行open打不开文件。若是绝对路径比如c:\11.xls则运行无误。。。

被迷惑了,有人遇到类似的问题吗?请指教。

ps:在windows下。

[ 本帖最后由 yiqiume 于 2009-9-23 14:36 编辑 ]

论坛徽章:
0
发表于 2009-09-23 18:51 |显示全部楼层
$Excel->Workbooks->Open($inPutFile)
excel 对open 函数就是要求的 绝对路径, 相对路径是不行的。。。
快速的解决方法:
$inPutFile = `cd` . '\' . $inPutFile;

论坛徽章:
0
发表于 2009-09-23 19:27 |显示全部楼层
原帖由 dugu072 于 2009-9-23 18:51 发表
$Excel->Workbooks->Open($inPutFile)
excel 对open 函数就是要求的 绝对路径, 相对路径是不行的。。。
快速的解决方法:
$inPutFile = `cd` . '\' . $inPutFile;

嗯,多谢。汗。。。为什么设计成这样,迷惑了我很久。。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP