关闭

Perl通过WIN32 OLE来操作EXCEL

6650人阅读 评论(2) 收藏 举报
       最近要用Perl(通过Win32::OLE)来操作EXCEL,在网上没找到类似的内容,好不容易在一本书上找到点入门知识,再加上自己捣鼓了一通,总算有点眉目,在此做个备份,供大家和我一起参考 ^_^
 

#!usr/bin/perl
use strict;
use warnings;
use Win32::OLE;   #导入win32 OLE包

my $dir = 'D://myperl//win32ole//';  #在此目录下新建两个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"Can't install Excel01!";
 
#打开一个EXCEL文件,'True' 表示是只读
my $src_book = $app_xls->WorkBooks->Open($src_name, 0, 'True');
my $src_sheet = $src_book->Worksheets(1); #选中一工作表
$nowstr = $src_sheet->Cells(1,'A')->{Value};  #取得一单元格中数据

print($nowstr);
$src_sheet->Cells(1,'A')->{Value}="change";  #修改一单元格中数据

my $dst_book = $app_xls->WorkBooks->Open($dst_name);
my $dst_sheet = $dst_book->Worksheets(1);
$app_xls->{DisplayAlerts} = 'False';    #关掉excel的提示,比如是否保存修改之类的
#$dst_book->Worksheets(1)->Delete; #删除一工作表

#从一个excel里复制一工作表到另一excel中
$src_book->Worksheets(1)->Copy($dst_book->Worksheets('sheet3')); 
$dst_book->Save;  #保存所做修改
$app_xls->{DisplayAlerts} = 'True'; #恢复提示

undef $src_book;
undef $dst_book;
undef $app_xls;  #关掉所打开的excel应用
 
参考资料:
1、《Perl5编程核心技术》——杜经农 (北京希望电子出版社)2000.11第一版
2、Microsoft Excel 开发人员参考,通过OLE来对EXCEL进行操作的一些说明,关于OLE相关支持,可在微软的 MSDN上找到,我的blog技术杂谈目录下也有对OLE的简介。
 
 PS:转载请保留以下信息
Author:smilelance    
Time:2006.05.23
 
0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:628110次
    • 积分:7468
    • 等级:
    • 排名:第3006名
    • 原创:153篇
    • 转载:52篇
    • 译文:2篇
    • 评论:96条
    最新评论