• 热门专题

perl Editor操作EXCEL程序出错

作者:  发布日期:2013-01-17 08:47:13
Tag标签:perl  Editor  EXCEL  
  • 因为工作中,老是需要去做一些空的excel表格以供同事记录一些东西,而excel的名称与sheet名称以日期命名,我烦了老是想手工去做这些,就想用程度来搞定。

    MFC已经是几百年不碰,Qt虽然是忘记得7788,但是重新回顾下应该还是可以,但是今晚刚发现一个让人痛心的信息,Qt操作EXCEL并不十分容易,而且好像是要有license的商业版才支持,实在不想去折腾,就又拿perl开刀,我很喜欢用perl,正则表达式用起来很灵活,也很方便,适合我这种菜鸟级别。

     

    于是乎,就在网上找了下perl操作excel的文档,学着做,但是当写了一个小测试程序后,发现编译总是出现问题:

    程序:


    use Win32::OLE;
    use strict;
    
    my $excel_ap=Win32::OLE->new('Excel.Application');
    my $src_excel=$excel_ap->Workbooks->Open('C:\2013src.xls');
    my $dst_excel=$excel_ap->Workbooks->Add; 
    
    
    $src_excel->Worksheets(1)->Copy($dst_excel->Worksheets(1));
    $dst_excel->SaveAs('C:\2013copy2.xls');
    
    undef $src_excel;
    undef $dst_excel;
    undef $excel_ap;
    
    
    

    这么简单的一个程序,测试能不能打开文档,能不能新建,能不能保存为,可是就是一直报下面的错:

    OLE exception from "Microsoft Excel":

    内存或磁盘空间不足,Microsoft Excel 无法再次打开或保存任何文档。

    ? 要想获得更多的可用内存,请关闭不再使用的工作簿或程序。

    ? 要想释放磁盘空间,请删除相应磁盘上不需要的文件。

    Win32::OLE(0.1709) error 0x800a03ec

        in METHOD/PROPERTYGET "Add" at Untitled.pl line 7

    Can't call method "Worksheets" on an undefined value at Untitled.pl line 10

     

    这个程序再简单不过,我的硬盘很大,不可能满,也不可能内存满,才占用了70%,但是如何调试都不行只好问度娘。

    人家是在发布网站的时候,但是共性估计都是操作了excel程序。 www.it165.net

    按上面的解决办法成功解决,编译通过。

    解决办法:

    1.运行"dcomcnfg.exe";
    2.组件服务-我的电脑-DCOM配置-Microsfot Excel Application,右键,属性,标识里设为"交互式用户".

     

    好吧,后面的excel偷懒等完成了再blog一下。


About IT165 - 广告服务 - 隐私声明 - 版权申明 - 免责条款 - 网站地图 - 网友投稿 - 联系方式
本站内容来自于互联网,仅供用于网络技术学习,学习中请遵循相关法律法规