#!/usr/bin/env perl use v5.24; use warnings; use Excel::Writer::XLSX; my $workbook = Excel::Writer::XLSX::->new('pm_11166178.xlsx'); my $worksheet = $workbook->add_worksheet('C'); my @formats; { no warnings 'qw'; for my $colour (qw{#ED7D31 #4472C4 #00B050}) { push @formats, $workbook->add_format(bg_color => $colour); } } my @data = ( { token => [[qw{a b c}],[1,2,3]], row => 1, col => 0, format => $formats[0], }, { token => [[qw{d e f}],[4,5,6]], row => 1, col => 3, format => $formats[1], }, { token => [[qw{x y z}],[24,25,26]], row => 1, col => 6, format => $formats[2], }, ); for my $datum (@data) { $worksheet->write_col(@$datum{qw{row col token format}}); }