因工作需要,要遇到很多Excel格式的文件需要处理,而Perl语言是我的最爱,只好去网络上搜索一下,搜到一篇《Perl通过WIN32 OLE来操作EXCEL》文章,(地址:http://www.dlog.cn/wangchi/diary/25001),以下是其他信息:
参考资料:
1、《Perl5编程核心技术》——杜经农(北京希望电子出版社)2000.11第一版
2、Microsoft Excel 开发人员参考,通过OLE来对EXCEL进行操作的一些说明,关于OLE相关支持,可在微软的 MSDN上找到,我的blog技术杂谈目录下也有对OLE的简介。
PS:转载请保留以下信息
Author:smilelance
Time:2006.05.23
再通过阅读CPAN上的文档,地址:http://search.cpan.org/~jdb/Win32-OLE-0.1709/lib/Win32/OLE.pm,再加上自己捣鼓捣鼓,终于成功了,呵呵。下面是源代码:
my $dir = 'c://MyPerl//Excel//'; #在此目录下新建EXCEL文件
#新建一个EXCEL应用对象,然后我们就可以对excel进行操作。
my $app_xls = Win32::OLE->new('Excel.Application',sub{$_[0]->Quit})
or die "Excel 初始化失败,你可能没有安装Excel!";
$app_xls->{displayAlerts} = 'False'; #关掉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; #不用了就销毁这个变量的内容
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"; #修改一单元格中数据
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); #选中一工作表
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应用
undef $src_book; #不用了就销毁这个变量的内容
undef $dst_book; #不用了就销毁这个变量的内容
undef $app_xls; #关掉所打开的excel应用
最后,要谢谢JDB(Win32::OLE模块的作者)和
smilelance同学,谢谢。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。