在 Windows 环境下用 Perl 读取 Excel 文件,可以使用 Spreadsheet-Read 库搭配不同的底层库来实现,如果是 xls 文件就使用 Spreadsheet-ParseExcel,如果是 xlsx 文件就使用 Spreadsheet-ParseXLSX 。
我使用的是 ActivePerl ,因此用 ppm 安装这三个库,命令是:
ppm install [库名]
示例代码如下,需要注意的是, 中文字符需要用 encode 来进行转码以防止乱码:
use Spreadsheet::Read;
use Encode;
use strict;
# 打开文件
my $book = Spreadsheet::Read->new ($path_to_file);
# 获取工作表,两种方式,通过工作表名或者编号
my $sht = $book->sheet("sheet_name");
my $sht = $book->sheet($sheet_no);
# 获取最大行数和最大列数
my $rowcnt = $sht->maxrow;
my $colcnt = $sht->maxcol;
# 获取单元格的值
my $val = $sht->cell("A3");
my $val = $sht->cell(1, 3); # 就是A3,这里是先列数,再行数
my $val = $book->sheet("sheet_name")->cell("A3"); # 还可以从工作簿出发到工作表再到单元格
my $val = encode("gbk", $sht->cell("A3")); # 如果是中文就需要转码