$font->{Color}
Returns the color index for the font. The mapping to an RGB color is defined by each workbook.
The index can be converted to a RGB string using the $workbook-ColorIdxToRGB()> Parser method.
(Older versions of Spreadsheet::ParseExcel provided the ColorIdxToRGB class method, which is deprecated.)
####
Borodin:I tried using ColorIdxToRGB and it gives me error: Can't locate object method "ColorIdxToRGB" via package "Spreadsheet::ParseExcel::Workbook"
####
Default state: Excels default color, usually black
Default action: Set the default color
Valid args: Integers from 8..63 or the following strings:
'black'
'blue'
'brown'
'cyan'
'gray'
'green'
'lime'
'magenta'
'navy'
'orange'
'pink'
'purple'
'red'
'silver'
'white'
'yellow'
####
#!/usr/bin/perl
use strict;
use warnings;
use Spreadsheet::WriteExcel;
use Spreadsheet::ParseExcel;
sub create_new_worksheet {
my ($row, $col, $value, $backgroundcolor) = @_;
# Create a new Excel workbook
my $workbook = Spreadsheet::WriteExcel->new('perl.xls');
# Add a worksheet
my $worksheet = $workbook->add_worksheet();
# Add and define a format
my $format = $workbook->add_format(bg_color => $backgroundcolor);
$format->set_align('center');
# Write a formatted and unformatted string, row and column notation.
$worksheet->write($row, $col, $value, $format);
}
my $parser = Spreadsheet::ParseExcel->new();
my $workbook_parse = $parser->Parse( 'Report.xls' );
my $worksheet_parse = $workbook_parse->Worksheet("Sheet1");
my ( $col_min, $col_max ) = $worksheet_parse->col_range();
my ( $row_min, $row_max ) = $worksheet_parse->row_range();
for my $col ( $col_min .. $col_max ) {
for my $row ( $row_min .. $row_max ) {
# Return the cell object at $row and $col
my $cell = $worksheet_parse->get_cell( $row, $col );
next unless $cell;
my $value = $cell->value();
my $format = $cell->get_format();
my $backgroundcolor = $format->{Fill}->[2];
print "Row, Col = ($row, $col) ";
print "Value = $value\n";
print "Format = $backgroundcolor\n";
create_new_worksheet($row, $col, $value, $backgroundcolor);
}
}
__END__
$ perl excel.pl
Row, Col = (0, 0) Value = Test
Format = 34