不能调用未定义值的方法“工作表”
我有一个问题parsing相同的Perl代码中的Excel文件:我得到这个错误:
“无法调用方法”工作表“上一个未定义的值在./parse_pathsim_results.pl行223”
有趣的是,在perl代码中,如果我在parsing其他文件(延迟xls)之前parsing了xls文件,
这里是代码:
use Spreadsheet::ParseExcel::SaveParser; $input_delay_csv_file = "./presto/prs/c2x_delay.xls"; $input_slope_excel_file = "./presto/prs/c2x_slope.xls"; $slope_parser = Spreadsheet::ParseExcel::SaveParser->new(); $delay_parser = Spreadsheet::ParseExcel::SaveParser->new();
如果我使用以下两行代码,则代码有效,但我不想。
$workbook = $delay_parser->Parse("$input_delay_csv_file"); $worksheet = $workbook->worksheet("Sheet1");
如果上面两行被注释,这就是它产生问题的地方。
$new_workbook = $slope_parser->Parse("$input_slope_excel_file"); $worksheet = $new_workbook->worksheet("Sheet1");
没有你给你的代码很多信息和只是片段,很难说。
伟大的嫌疑犯是文件格式本身,因为Parse
方法不返回一个$workbook
,parsing器返回undef
我最近有一个这样的问题,其中Excel文件是一个相当新的格式版本。 (以.xlsx而不是.xls结尾)使用MS Excel打开文件并保存为旧的Excel格式。
您的第一个文件看起来像是一个普通的CSV文件,因此parsing没有问题。