免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2593 | 回复: 3
打印 上一主题 下一主题

求用perl处理excel的资料 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2011-04-10 10:03 |只看该作者 |倒序浏览
麻烦各位大师提供点用perl处理excel的资料。

论坛徽章:
0
2 [报告]
发表于 2011-04-10 10:33 |只看该作者
google Win32::OLE excel

论坛徽章:
0
3 [报告]
发表于 2011-04-10 10:35 |只看该作者
Spreadsheet::ParseExcel
Spreadsheet::WriteExcel

论坛徽章:
0
4 [报告]
发表于 2011-04-10 11:13 |只看该作者
粘一个自己平时用的,希望有所帮助。

#!/usr/bin/perl -w
## Program : xls.pl
## Version : 1.0
## Date    : 2010.7.8
##------------------------------------------------------------------------------

use Spreadsheet:arseExcel;
use Spreadsheet:arseExcel::FmtUnicode;
use Spreadsheet::WriteExcel;


#---------------------------写EXCEL-------------------------------------------------------

my $output= File::Spec->catfile('Copy.xls');
my $Map=new Unicode::Map("GB2312";
my $workbook=Spreadsheet::WriteExcel->new("$output";
my $out_worksheet=$workbook->add_worksheet("table";
$format = $workbook->add_format(align=>'center',bg_color=>'cyan',border=> 1);


#---------------------------读取EXCEL-------------------------------------------------------

$filename="input.xls";
my $oExcel = new Spreadsheet:arseExcel;
my $code = "gb2312";
my $oFmtJ = Spreadsheet:arseExcel::FmtUnicode->new(Unicode_Map =>$code);
my $oBook = $oExcel->arse( $filename, $oFmtJ );

my $sheet=$oBook->{Worksheet}[0];
#$sheet_name=$sheet->{Name};

my ( $minRow, $maxRow ) = $sheet->row_range();
my ( $minCol, $maxCol ) = $sheet->col_range();

my @rowdata;
my $r_num=0;


for $r(0..$maxRow){  
@row_data=getSingleRow($r,$maxCol,$sheet);
#print "@row_data"."\n";
my $i=0;
    foreach(@row_data){
      print $_;
      $out_worksheet->write_unicode($r,$i++,$Map->to_unicode($_),$format);
       }
      }

sub getSingleRow{
   my($row,$maxCol,$sheet)=@_;
    my @row_all;
    foreach my $col ( 0 .. $maxCol ){
            my $cell = $sheet->get_cell( $row, $col );
            next unless $cell;
            $data=$cell->value;
             push(@row_all,$data);
        }
        return @row_all;
}
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP