perl win32::ole 操作excel

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


#my $dir = 'D://myperl//win32ole//';  #在此目录下新建两个EXCEL
my $dir ='D:/Teradata/3program/';
my $src_name = $dir."test1".".xlsx";
my $dst_name = $dir."test2".".xlsx";
my $nowstr;


#新建一个EXCEL应用对象,然后我们就可以对excel进行操作。
my $app_xls = Win32::OLE->new('Excel.Application', sub{$_[0]->Quit}) 
or die"Can't install Excel01!";
$app_xls->{DisplayAlerts} = 'False'; #关闭提示
#打开一个EXCEL文件,'True' 表示是只读
#print($src_name);
my $src_book = $app_xls->WorkBooks->Open($src_name); 


my $src_sheet = $src_book->Worksheets(1); #选中一工作表
$nowstr = $src_sheet->Cells(1,'A')->{Value};  #取得一单元格中数据
#print("\nnowstr:".$nowstr."\n");
$src_sheet->Cells(1,'A')->{Value}="changing";  #修改一单元格中数据
$src_book->Save;


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应用


#若出现 can't call method worksheets  on an undefined value at 

#则可能是路径、文件名等错误,可以打印出来确保正确

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值