2013-10-03 45 views
0

我有Excel文件5级压痕的,所以我想我需要Spreadsheet::ParseExcel::Format 但是当我试图$format->{Indent}(就像在大纲)的Perl说:解析的.xls档案与压痕

Global symbol "$format" requires explicit package name 

我尝试不同的方式,也Spreadsheet::ParseExcel::Format->new()和其他人,但仍然没有成功。

什么是正确的概要或是否有其他方法来解析xls文件中的缩进? 也许有些二进制? (xlhtmlxls2csv不在乎在所有缩进:()

+2

请出示一些运行的代码 – mvp

+2

重复?http://www.perlmonks.org/index.pl?node_id=1056732 –

回答

0

通过@mpapec链接到该网站似乎声称拥有约翰麦克纳马拉的解决方案:

#!/usr/bin/perl -w 

use strict; 
use Spreadsheet::ParseExcel; 

my $parser = Spreadsheet::ParseExcel->new(); 
my $workbook = $parser->parse('Book1.xls'); 

if (!defined $workbook) { 
    die $parser->error(), ".\n"; 
} 

for my $worksheet ($workbook->worksheets()) { 

    my ($row_min, $row_max) = $worksheet->row_range(); 
    my ($col_min, $col_max) = $worksheet->col_range(); 

    for my $row ($row_min .. $row_max) { 
     for my $col ($col_min .. $col_max) { 

      my $cell = $worksheet->get_cell($row, $col); 
      next unless $cell; 

      my $format = $cell->get_format(); 

      print "Row, Col = ($row, $col)\n"; 
      print "Value  = ", $cell->value(), "\n"; 
      print "Indent  = ", $format->{Indent}, "\n"; 

      print "\n"; 
     } 
    } 
} 
__END__