我正在尝试使用Spreadsheet::ParseExcel::SaveParser插件,在metacpan.org和其他地方使用示例代码,但我无法定义模板(工作簿)。
我已经尝试了新语句、引号、文件parh等的变体--什么都不起作用。我在模板语句后面放了一个骰子,它会打印出错误消息。如果没有它,我有一个$template->worksheet()或worksheets()语句,如果我跳过骰子,我会得到一条不同的消息。我确认Excel文件的路径是正确的。我还使用了new()'ed Spreadsheet::ParseXLSX,代码解决了模板未定义的问题--当然,当我尝试执行AddCell时,它崩溃了。
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));消亡
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。
发布于 2019-07-18 04:23:22
您可能想通过阅读此模块的CPAN页面来跟踪Parse()函数可以进行哪些错误处理。找到并调整错误处理,让您对Parse()失败的原因略知一二。您关于“未定义值上的工作表”的错误表示调用失败。可能是您没有转义文件路径,也可能是您没有文件的读取权限,还有很多其他原因导致Parse()失败。呃,我自己也去看了看,对于这个函数来说,错误处理的文档还不够充分。也许可以尝试使用一些错误处理变量?请参阅https://perldoc.perl.org/perlvar.html#Error-Variables
https://stackoverflow.com/questions/57082427
复制相似问题