0

私は5レベルのインデントを持つExcelファイルを持っているので、必要だと思いますSpreadsheet::ParseExcel::Format が、試しているとき$format->{Indent}(概要のように)perlは次のように言います:

Global symbol "$format" requires explicit package name

私はさまざまな方法を試しSpreadsheet::ParseExcel::Format->new()ていましたが、それでも成功しませんでした。

正しい概要とは何ですか、またはxlsファイルからインデントを解析する他の方法はありますか? 多分いくつかのバイナリ?(xlhtmlそして、xls2csvインデントはまったく気にしません:( )

4

1 に答える 1

0

@mpapec によってリンクされたサイトには、John McNamara による解決策があると主張されているようです。

#!/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__
于 2013-12-11T23:52:26.357 に答える