Perl读取Excel中的数据
#!usr/bin/perl -W use strict; use Spreadsheet::ParseExcel;#PERL的Spreadsheet::ParseExcel模块支持Excel的读操作。 use utf8; #引入utf8模块 脚本内的字符串使用utf8作为编码格式 binmode(STDOUT,":encoding(gbk)"); #标准输出使用gbk作为编码格式,也可以把gbk改为gb2312 binmode(STDIN,":encoding(gbk)"); #如果涉及到输入流,例如读文件,不加这条读中文文件会出现乱码 binmode(STDERR,":encoding(gbk)"); #如果异常错误中的字符串有中文,请加上STDERR,否则也会出现乱码 #创建一个parser对象 my $parser=Spreadsheet::ParseExcel->new(); #返回一个文件(IO_300.xls)句柄,通过该句柄可以实现对文件的操作 my $workbook=$parser->parse("IO.xls"); #defined:此函数作用不是判断某个变量是否已经定义,而是用来判断某个变量是否为空 #如果文件不为空 if(!defined $workbook ) { die $parser->error(),".\n"; } #遍历工作表 my $count=0; for my $worksheet ($workbook->worksheets()) { #获取表名 my $TableName = $worksheet->get_name(); print " /////////////////////////////////////////////////////////////////$TableName////////////////////////////////////////////////////////////////\n"; #得到工作表的行和列标范围 my ($row_min,$row_max)=$worksheet->row_range(); my ($col_min,$col_max)=$worksheet->col_range(); print "($row_min,$row_max)\n"; print "($col_min,$col_max)\n"; #遍历行和列 for my $row (1 .. $row_max) { for my $col (1 .. $col_max) { #根据行和列得到单元格 my $cell=$worksheet->get_cell($row,$col); #除非单元格为空,否则继续执行下面的代码 next和c语言中的continue语句类似 next unless $cell; #打印单元格的值 print "Row, Col = ($row, $col)\n"; print "Value = ", $cell->value(), "\n"; $count+=1; } } } print "总共执行的次数:$count"; <STDIN>;
4556