如何从perl中的xlsx读取数据

use*_*312 4 perl xlsx

需要一些好人帮我阅读扩展名为"xlsx"的excel文件我的脚本适用于"xls"但不适用于"xlsx",这里是我得到错误的代码:Can't call method "worksheet" on an undefined value如果文件是"xlsx",这里是我做的代码有:

#!/usr/bin/perl -w

use warnings;
use strict;
use Spreadsheet::ParseExcel;
use Spreadsheet::XLSX;
use Date::Format;

my $filename = "../test.xlsx";
#Parse excel file
my $parser = Spreadsheet::ParseExcel->new();
my $workbook = $parser->parse("$filename");

#Get cell value from excel sheet1 row 1 column 2
my $worksheet = $workbook->worksheet('Sheet1');
my $cell = $worksheet->get_cell(0,1);

# Print the cell value when not blank
if ( defined $cell and $cell->value() ne "") {
    my $value = $cell->value();
    print "cell value is $value \n";
}
Run Code Online (Sandbox Code Playgroud)

yst*_*sth 11

Spreadsheet :: XLSX与.xlsx文件的Spreadsheet :: ParseExcel相当; 你需要说:

my $parser = Spreadsheet::XLSX->new();
Run Code Online (Sandbox Code Playgroud)

而不是使用ParseExcel.