perl 操作 excel 简单例子

#!/usr/bin/perl
use strict;
use warnings;


use Win32::OLE qw(in with);
use Win32::OLE::Const 'Microsoft Excel';
use Win32::OLE::NLS qw(:LOCALE :TIME);
my $Excel = Win32::OLE->GetActiveObject('Excel.Application')
        || Win32::OLE->new('Excel.Application', 'Quit');

my$excelfile='E:\学习程序\perl\excelfile.xls';

#关闭警告信息,例如保存等,不跳出确认窗口
$Excel->{DisplayAlerts}=0;  

#创建一个workbook
#my $Book=$Excel->Workbooks->Add();
#   $Book->SaveAs($excelfile); # 增加一个workbook,然后保存

#直接打开一个excel 若存在
my$Book=$Excel->Workbooks->Open($excelfile);

#创建一个worksheet对象
my $Sheet = $Book->Worksheets("Sheet1");
#   $Sheet->Activate();
#   $Sheet->{Name} = "DidItInPerl";

#插入数据
my ($mday,$mon,$year) = (localtime(time))[3,4,5];
$year += 1900;
$mon += 1;
my $str = $year."/".$mon."/".$mday;

#Range  行方法
$Sheet->Range("C1")->{Value}=$str;
$Sheet->Range("D1")->{Value}="今天的日期";

#迭代插入数据
foreach my$x (1 ..50) {
    my$range="A".$x;
    $Sheet->Range($range)->{Value}="这是第$range行";
}


#循环访问sheet
my $sheetcnt = $Book->Worksheets->Count();
foreach (1..$sheetcnt){
   print "\t" .$Book->Worksheets($_)->{Name} ."\n";
}

foreach my $Sheet(in $Book->{Worksheets}){
   print "\t" .$Sheet->{Name} ."\n";
}


#找到最后一行 最后一列方法
my $LastRow = $Sheet->UsedRange->Find({What=>"*",
    SearchDirection=>xlPrevious,
    SearchOrder=>xlByRows})->{Row};

my $LastCol = $Sheet->UsedRange->Find({What=>"*",
                  SearchDirection=>xlPrevious,
                  SearchOrder=>xlByColumns})->{Column};
print "最后一列:",$LastCol,"\n";
print "最后一行:",$LastRow,"\n";


#读取第一行到最后一行数据
print "#" x80,"\n";
print "读取A列第一行到最后一行数据\n";
my$tmp;
foreach my$last_data (1..$LastRow) {
    $tmp=$Sheet->Range("A".$last_data)->{Value};
    print "第$last_data行数据:",$tmp,"\n";
}


#学习来源perlmonks.org

#############################################################
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值