首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Spreadsheet::ParseExcel::SaveParser问题-无法获取定义的工作簿对象

Spreadsheet::ParseExcel::SaveParser问题-无法获取定义的工作簿对象
EN

Stack Overflow用户
提问于 2019-07-18 02:48:17
回答 1查看 216关注 0票数 0

我正在尝试使用Spreadsheet::ParseExcel::SaveParser插件,在metacpan.org和其他地方使用示例代码,但我无法定义模板(工作簿)。

我已经尝试了新语句、引号、文件parh等的变体--什么都不起作用。我在模板语句后面放了一个骰子,它会打印出错误消息。如果没有它,我有一个$template->worksheet()或worksheets()语句,如果我跳过骰子,我会得到一条不同的消息。我确认Excel文件的路径是正确的。我还使用了new()'ed Spreadsheet::ParseXLSX,代码解决了模板未定义的问题--当然,当我尝试执行AddCell时,它崩溃了。

代码语言:javascript
复制
    use Spreadsheet::ParseExcel;
    use Spreadsheet::ParseExcel::SaveParser;

    my $saveParser  = Spreadsheet::ParseExcel::SaveParser->new();
    my $template    = $saveParser->Parse("some Excel file verified to exist");
    die "Error! Template not defined!\n" if (!defined($template));

消亡

代码语言:javascript
复制
    use Spreadsheet::ParseExcel;
    use Spreadsheet::ParseExcel::SaveParser;

    my $saveParser  = Spreadsheet::ParseExcel::SaveParser->new();
    my $template    = $saveParser->Parse("some Excel file verified to exist");
    my $worksheet = $template->worksheet(0);

无法对../bin/update_tp.pl行nnn处的未定义值调用方法"worksheet“。如果我使用工作表名称而不是数字,它也会出错。

显然,我希望$saveParser->Parse命令返回一个有效的对象,这样我就可以使用它了--事实并非如此。仅供参考,我使用的所有模块都是0.65的当前版本,除了WriteExcel (这还没有关系),它是2.4。

EN

回答 1

Stack Overflow用户

发布于 2019-07-18 04:23:22

您可能想通过阅读此模块的CPAN页面来跟踪Parse()函数可以进行哪些错误处理。找到并调整错误处理,让您对Parse()失败的原因略知一二。您关于“未定义值上的工作表”的错误表示调用失败。可能是您没有转义文件路径,也可能是您没有文件的读取权限,还有很多其他原因导致Parse()失败。呃,我自己也去看了看,对于这个函数来说,错误处理的文档还不够充分。也许可以尝试使用一些错误处理变量?请参阅https://perldoc.perl.org/perlvar.html#Error-Variables

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57082427

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档