No need for 2 arrays, just use an if-elsif block for the 2 conditions
poj#!/usr/bin/perl -w use strict; use Spreadsheet::ParseExcel; use Spreadsheet::WriteExcel; my $parser = Spreadsheet::ParseExcel->new(); my $workbook = $parser->parse('Homestead_status.xls'); if ( !defined $workbook ) { die $parser->error(), ".\n"; } my $workbook1 = Spreadsheet::WriteExcel->new('Report.xls'); my $format1 = $workbook1->add_format(bg_color => 'green'); my $format2 = $workbook1->add_format(bg_color => 'orange'); for my $worksheet ( $workbook->worksheets() ) { my $worksheet1 = $workbook1->add_worksheet(); my ( $row_min, $row_max ) = $worksheet->row_range(); my ( $col_min, $col_max ) = $worksheet->col_range(); for my $row ( $row_min .. $row_max ) { my @value = (); my $fmt; # format for complete row # store row in array for my $col ( $col_min .. $col_max ) { my $cell = $worksheet->get_cell( $row, $col ); if (defined $cell) { $value[$col] = $cell->value() ; if ($value[$col] =~ m/Completed/i){ $fmt = $format1 } elsif ($value[$col] =~ m/In Progress/i){ $fmt = $format2 } } } # write row for my $col ( $col_min .. $col_max ) { $worksheet1->write($row, $col, $value[$col],$fmt); } } }
In reply to Re^3: Perl script to fill the entire row of Excel file with color based on pattern match
by poj
in thread Perl script to fill the entire row of Excel file with color based on pattern match
by kshitij
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |