首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么Perl的Spreadsheet::ParseExcel从不从$parser->parse('test.xls')返回?

为什么Perl的Spreadsheet::ParseExcel从不从$parser->parse('test.xls')返回?
EN

Stack Overflow用户
提问于 2010-02-03 19:27:26
回答 5查看 3.9K关注 0票数 1

电子表格与Excel 97-2003兼容,权限为777

代码语言:javascript
复制
use strict;
use Spreadsheet::ParseExcel;
print "Content-type: text/html\n\n";   
my $parser   = Spreadsheet::ParseExcel->new();
print "<br>gets here:".__LINE__; 
my $workbook = $parser->parse('test.xls');
print "<br>never gets here:".__LINE__; 
EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2010-02-03 19:40:59

你使用最新的Spreadsheet::ParseExcel吗?当前版本为0.57。

我看到你是以CGI的身份运行的。您是否可以从命令行(本地,使用相同的测试文件)运行它,并检查是否有任何错误消息?

也可以尝试使用eval (从命令行运行更好),并检查是否定义了$parser:

代码语言:javascript
复制
print '$parser is undef<br>' unless defined $parser;
eval {
  my $workbook = $parser->parse('test.xls');
};
print "Error message from eval: $@<br>";

请尝试其他Excel文件。

如果错误仍然未知且具有特定Excel文件,则在bug tracker中报告错误。

票数 4
EN

Stack Overflow用户

发布于 2010-02-04 00:15:40

我是Spreadsheet::ParseExcel的维护者。

parse()方法仅在更新的版本中可用。建议进行升级以获取最新的错误修复。

较新的版本还具有用于报告解析错误的error() and error_code()方法。

约翰。

票数 3
EN

Stack Overflow用户

发布于 2010-02-03 20:37:16

有一次,我发现我正在尝试使用一个不存在的方法,这要归功于使用eval (alexandr-ciornii推荐的)。

对我有用的是什么

代码语言:javascript
复制
$workbook = Spreadsheet::ParseExcel::Workbook->Parse('test.xls');
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2191496

复制
相关文章

相似问题

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