in reply to Re: memory usage Spreadsheet::ParseExcel
in thread memory usage Spreadsheet::ParseExcel
my $cell_outputfh; my $xls_parser = Spreadsheet::ParseExcel->new( CellHandler => \&HH_cell_handler, NotSetCell => 1 ); for (my $i=0;$i < scalar(@workbook_zip_FNS) ;$i++ ) { open ( $cell_outputfh, ">:encoding(iso-8859-1)", $ribbon_srcgeo[$i +].".csv" ) or die " open failed on $ribbon_srcgeo[$i].csv $!"; my $workbook = $xls_parser->parse($unzipped_xls_FNS[$i]); if ( !defined $workbook ) { die $xls_parser->error(), ".\n"; } print "\n"; close $cell_outputfh; for my $worksheet ( $workbook->worksheets() ) { my $wsname=$worksheet->get_name(); print $wsname."*"; open ( $cell_outputfh, "<:encoding(iso-8859-1)", $ribbon_srcge +o[$i].".csv" ) or die " open failed on $ribbon_srcgeo[$i].csv $!"; my $HofA_sheet_rows; while (<$cell_outputfh>) { my @fields = split /","/, $_; $fields[0] =~ s/^"//; $fields[3] =~ s/"$//; if( $fields[0] eq $wsname ) { $HofA_sheet_rows{$wsname}[$fields[1]][$fields[2]] = $f +ields[3]; } } undef $HofA_sheet_rows; close $cell_outputfh; } undef $workbook; } sub HH_cell_handler { my $workbook = $_[0]; my $sheet_index = $_[1]; my $row = $_[2]; my $col = $_[3]; my $cell = $_[4]; my $worksheet = $workbook->worksheet($sheet_index); my $wsname=$worksheet->get_name(); my $value='"'.$wsname.'"'.','.'"'.$row.'"'.','.'"'.$col.'"'.','.'" +'.$cell->value().'"'."\n"; print $cell_outputfh $value; }
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re^3: memory usage Spreadsheet::ParseExcel
by ww (Archbishop) on May 13, 2012 at 15:03 UTC | |
by Anonymous Monk on May 13, 2012 at 16:39 UTC | |
|
Re^3: memory usage Spreadsheet::ParseExcel
by Anonymous Monk on May 13, 2012 at 14:00 UTC |