在 Windows 環(huán)境下用 Perl 讀取 Excel 文件宙刘,可以使用 Spreadsheet-Read 庫(kù)搭配不同的底層庫(kù)來(lái)實(shí)現(xiàn)踱启,如果是 xls 文件就使用 Spreadsheet-ParseExcel昧识,如果是 xlsx 文件就使用 Spreadsheet-ParseXLSX 疮丛。
我使用的是 ActivePerl ,因此用 ppm 安裝這三個(gè)庫(kù)驴党,命令是:
ppm install [庫(kù)名]
示例代碼如下瘪撇,需要注意的是, 中文字符需要用 encode 來(lái)進(jìn)行轉(zhuǎn)碼以防止亂碼:
use Spreadsheet::Read;
use Encode;
use strict;
# 打開(kāi)文件
my $book = Spreadsheet::Read->new ($path_to_file);
# 獲取工作表港庄,兩種方式设江,通過(guò)工作表名或者編號(hào)
my $sht = $book->sheet("sheet_name");
my $sht = $book->sheet($sheet_no);
# 獲取最大行數(shù)和最大列數(shù)
my $rowcnt = $sht->maxrow;
my $colcnt = $sht->maxcol;
# 獲取單元格的值
my $val = $sht->cell("A3");
my $val = $sht->cell(1, 3); # 就是A3,這里是先列數(shù)攘轩,再行數(shù)
my $val = $book->sheet("sheet_name")->cell("A3"); # 還可以從工作簿出發(fā)到工作表再到單元格
my $val = encode("gbk", $sht->cell("A3")); # 如果是中文就需要轉(zhuǎn)碼