【问题标题】:Perl 'can't locate object method "worksheets" via package "Spreadsheet::ParseExcel::Workbook"'Perl'无法通过包“Spreadsheet::ParseExcel::Workbook”定位对象方法“工作表”'
【发布时间】:2016-05-10 21:43:01
【问题描述】:

我正在尝试打开两个 Excel .xls 文件进行比较。我包括了

    use Spreadsheet::ParseExcel;    

然后,我继续我的代码如下:

    my $parser_r   = Spreadsheet::ParseExcel->new();
    my $resultbook = $parser_r->parse($absPathResult);
    my $parser_i   = Spreadsheet::ParseExcel->new();
    my $resultideal = $parser_i->parse($absPathIdeal);

    @worksheetsListResult = $resultbook->worksheets();
    @worksheetsListIdeal = $resultideal->worksheets();

我遇到的第一个错误是“找不到对象方法“parser”...”,但是通过将“parser”更改为“Parser”解决了这个问题。

当我再次执行脚本时,出现错误:无法通过包“Spreadsheet::ParseExcel::Workbook”定位对象方法“worksheets”。

我在 Linux Perl v5.8.5 中运行脚本。

知道这里可能存在什么问题吗?我是 Perl 语言的新手。非常感谢所有 cmets。

PS:当我在 Windows 中运行类似的代码时,一切正常。

【问题讨论】:

  • 那个版本的 Perl 已经 11 岁了。考虑使用perlbrew 进行升级。

标签: excel perl parsing


【解决方案1】:

The workbooks() method was added in 0.43,六年前。由于您的 Perl 版本相当旧(11 年),因此您的 Spreadsheet::ParseExcel 版本可能也相当旧。

您可以通过以下方式检查:

perl -MSpreadsheet::ParseExcel -wle 'print $Spreadsheet::ParseExcel::VERSION'

一般来说,除非您保持最新,否则不要使用 Perl 模块的 Web 文档。它可能不适用于您安装的版本。请改用perldoc

【讨论】:

    猜你喜欢
    • 2014-08-05
    • 2019-11-26
    • 2013-03-19
    • 1970-01-01
    • 2014-11-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-08
    相关资源
    最近更新 更多