最近工作中可能用到perl脚本处理一些execl文件,提前看下资料,刚新浪博客发现一篇例文还不错,转过来,需要的随便看看吧,
原文地址:http://blog.sina.com.cn/s/blog_5538ddac01009vgy.html
参考资料: 1、《Perl5编程核心技术》——杜经农(北京希望电子出版社)2000.11第一版 2、Microsoft Excel 开发人员参考,通过OLE来对EXCEL进行操作的一些说明,关于OLE相关支持,可在微软的 MSDN上找到,我的blog技术杂谈目录下也有对OLE的简介。 PS:转载请保留以下信息 Author:smilelance From:http://blog.csdn.net/smilelance Time:2006.05.23 再通过阅读CPAN上的文档,地址:http://search.cpan.org/~jdb/Win32-OLE-0.1709/lib/Win32/OLE.pm,再加上自己捣鼓捣鼓,终于成功了,呵呵。下面是源代码: use strict; use warnings; use Win32::OLE; #导入win32 OLE包 use File::Copy; #导入文件复制模块 my $dir = 'c://MyPerl//Excel//'; #在此目录下新建EXCEL文件 my $src_name = $dir."test1"."/.xls"; my $dst_name = $dir."test2"."/.xls"; my $nowstr; #新建一个EXCEL应用对象,然后我们就可以对excel进行操作。 my $app_xls = Win32::OLE->new('Excel.Application', sub{$_[0]->Quit}) or die "Excel 初始化失败,你可能没有安装Excel!"; $app_xls->{DisplayAlerts} = 'False'; #关掉excel的提示,比如是否保存修改之类的 #新建一个空的Excel文件,然后保存 my $book = $app_xls->WorkBooks->Add; #新建一个工作簿 $book->SaveAs($dir."myxls/.xls") or die "Save failer."; #保存这个工作部文件 undef $book; #不用了就销毁这个变量的内容 copy($dir."myxls/.xls",$src_name); copy($dir."myxls/.xls",$dst_name); #打开一个EXCEL文件 my $src_book = $app_xls->WorkBooks->Open($src_name); my $src_sheet = $src_book->Worksheets(1); #选中一工作表 $nowstr = $src_sheet->Cells(1,1)->{Value}; #取得一单元格中数据 print $nowstr; #本脚本中该变量的值为未定义 undef $src_sheet->Cells(1,1)->{Value}="change"; #修改一单元格中数据 my $dst_book = $app_xls->WorkBooks->Open($dst_name); my $dst_sheet = $dst_book->Worksheets(1); #选中一工作表 #从一个excel里复制一工作表到另一excel中 $src_book->Worksheets(1)->Copy($dst_book->Worksheets(1)); $dst_book->Worksheets(3)->Delete;#删除一工作表 $dst_book->Save; #保存所做修改 $src_book->Save; $app_xls->{DisplayAlerts} = 'True'; #恢复提示 #<STDIN>; undef $src_book; #不用了就销毁这个变量的内容 undef $dst_book; #不用了就销毁这个变量的内容 undef $app_xls; #关掉所打开的excel应用 最后,要谢谢JDB(Win32::OLE模块的作者)和 smilelance同学,谢谢。
