my $workbook = Spreadsheet::WriteExcel->new($file_name); my $worksheet = $workbook->add_worksheet(); my $format_heading = $workbook->add_format(); my $condition = "some value"; getFormat($condition); $worksheet->write($row_position, $column_position, $some_info,$format_heading); sub getFormat { $condition = shift; if (Condition 1){ $format_heading->set_bgcolor('yellow'); } elsif (Condition 2){ $format_heading->set_bgcolor('pink'); $format_heading->set_color('red'); } elsif (Condition 3){ $format_heading->set_bgcolor('blue'); } else { $format_heading->set_bgcolor('white'); # Default color } }