免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 5470 | 回复: 12
打印 上一主题 下一主题

win32:OLE 运行时报错,求解 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-01-13 11:36 |只看该作者 |倒序浏览
报错代码如下win32::OLE<0.1709> error ox80020003:""in Method/propertyget"" 这是错误提示 如何解决

代码如下:
my $ex = Win32::OLE->new('Excel.Application') or die "errors\n";
my $xw = $ex->Workbooks->Open("test.xls");
my $sheetxw = $xw->Worksheets(9);

    foreach $fan (@fan)
{

  print ($fan);
$sheetxw->cells($num,4)->{value} = $fan;
      $num++;

}


           $sheetxw->Save;                                                 #保存excel
           $sheetxw->Close;                                                #关闭excel
           $ex->Quit;

论坛徽章:
0
2 [报告]
发表于 2009-01-13 11:46 |只看该作者
报错指的位置是 最后3行

论坛徽章:
3
戌狗
日期:2014-09-10 17:07:162015年辞旧岁徽章
日期:2015-03-03 16:54:15wusuopu
日期:2016-06-17 17:43:45
3 [报告]
发表于 2009-01-13 12:01 |只看该作者
我用下面代码测试没问题。你检查一下@fan的内容

  1. use Win32::OLE;

  2. my $ex = Win32::OLE->new('Excel.Application') or die "errors\n";
  3. my $xw = $ex->Workbooks->Open("f:/luyc/perl/test.xls") or die $!;
  4. my $sheetxw = $xw->Worksheets(1);

  5. @fan = qw(a b c d e f g h i);
  6. foreach $fan (@fan)
  7. {
  8.     print ($fan);
  9.     $sheetxw->cells($num,4)->{value} = $fan;
  10.     $num++;
  11. }

  12. $sheetxw->Save; #保存excel
  13. $sheetxw->Close; #关闭excel
  14. $ex->Quit
复制代码

论坛徽章:
0
4 [报告]
发表于 2009-01-13 13:03 |只看该作者

回复 #3 ynchnluiti 的帖子

是的 我的@fan 是-18.22 dBm-22.96 dBm-27.43 dBm-25.42 dBm-25.63 dBm-12.15 dBm-12.39 dBm-12.17 dBm
尽管报错可是执行没问题

论坛徽章:
3
戌狗
日期:2014-09-10 17:07:162015年辞旧岁徽章
日期:2015-03-03 16:54:15wusuopu
日期:2016-06-17 17:43:45
5 [报告]
发表于 2009-01-13 13:11 |只看该作者
原帖由 hustddb 于 2009-1-13 13:03 发表
是的 我的@fan 是-18.22 dBm-22.96 dBm-27.43 dBm-25.42 dBm-25.63 dBm-12.15 dBm-12.39 dBm-12.17 dBm
尽管报错可是执行没问题

我用这个数据测试一下看看

论坛徽章:
3
戌狗
日期:2014-09-10 17:07:162015年辞旧岁徽章
日期:2015-03-03 16:54:15wusuopu
日期:2016-06-17 17:43:45
6 [报告]
发表于 2009-01-13 13:15 |只看该作者
原帖由 hustddb 于 2009-1-13 13:03 发表
是的 我的@fan 是-18.22 dBm-22.96 dBm-27.43 dBm-25.42 dBm-25.63 dBm-12.15 dBm-12.39 dBm-12.17 dBm
尽管报错可是执行没问题

你只用贴出的代码,用这个数据也会报错吗?
我用这个数据没问题。
代码里只改了Worksheets(9) -> Worksheets(1);

论坛徽章:
0
7 [报告]
发表于 2009-01-13 13:52 |只看该作者

回复 #6 ynchnluiti 的帖子

用你的帖出代码是没问题的 可是 我的@fan 是通过返回正则匹配来的 ,我打出来的@fan 就是我给你的 不知为何就报那个错了

论坛徽章:
0
8 [报告]
发表于 2009-01-13 13:54 |只看该作者
@fan 是这样来的
@output1 = $session->cmd(-String => "$TR" , -Timeout => 300);
               $fan="@output1";
               @fan=$fan=~ m/\s+:\s+(.*\sdBm$)/img ;};
               @fan[$num]= $1 ;
               $num++;

论坛徽章:
0
9 [报告]
发表于 2009-01-13 13:57 |只看该作者
还有个 提示 也请解决一下 use of uninitialized value $_ in scalar chomp

我是这样用的  open (EXAMPLE,'e:\perl\ZH.txt')||die("error! \n");                     
           @ZH = <EXAMPLE>;
           foreach $ZH(@ZH)
           {
               chomp;
               @output1 = $session->cmd(-String => "$TR" , -Timeout => 300);
               $fan="@output1";
               $fan=~ m/\s+:\s+(.*\sdBm$)/img ;};
               $sheetxw->cells($num,4)->{value} = $fan;
               $num++;
           }

论坛徽章:
3
戌狗
日期:2014-09-10 17:07:162015年辞旧岁徽章
日期:2015-03-03 16:54:15wusuopu
日期:2016-06-17 17:43:45
10 [报告]
发表于 2009-01-13 14:06 |只看该作者
原帖由 hustddb 于 2009-1-13 13:57 发表
还有个 提示 也请解决一下 use of uninitialized value $_ in scalar chomp
           foreach $ZH(@ZH)
           {
               chomp; #->chomp($ZH); 或者把上面的$ZH去掉
               @output1 = $session->cmd(-String => "$TR" , -Timeout => 300);
               $fan="@output1";
               $fan=~ m/\s+:\s+(.*\sdBm$)/img ;};#这个花括号?
               $sheetxw->cells($num,4)->{value} = $fan;
               $num++;
           }

foreach 用了变量$ZH
chmop -> chmop($ZH);
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP