Excel读错误

时间:2017-02-17 11:25:45

标签: excel perl

我正在尝试使用Spreadsheet :: ParseExcel打开.XLS文件,但我无法获取工作表对象。当我打印工作表名称时,没有任何内容被打印。工作表名称使用文件名进行映射,并在我们更改文件名时进行更改。文件先前在excel中以保护模式打开,但随后我进行了设置更改,现在使用Excel正常打开。

我尝试了两种变体,第一种是:

my $parser   = Spreadsheet::ParseExcel->new() or die($_);
my $newPath = 'C:\Users\MG\Desktop\WorkBook.XLS';
my ($filename, $parentdir, $extension) = fileparse($newPath, qr/\.[^.]*$/);
my $workbook = $parser->parse($newPath);

if ( !defined $workbook ) {
    die $parser->error(), ".\n";
}
my $sheet =  $workbook->worksheet($filename);
print $sheet->get_name();
  

上面的代码给出了错误 - 无法调用方法" get_name"在...上   未定义的值

第二个变体是:

my $parser   = Spreadsheet::ParseExcel->new() or die($_);
    my $newPath = 'C:\Users\MG\Desktop\WorkBook.XLS';
    my $workbook = $parser->parse($newPath);

    if ( !defined $workbook ) {
        die $parser->error(), ".\n";
    }
    my $sheet =  $workbook->worksheet(0);
    print $sheet->get_name();
  

在上面的代码中,我没有得到任何输出,甚至没有任何错误。

如果我在系统中打开它后将此文件另存为.xls,则上述代码也可以使用。

0 个答案:

没有答案