#!/usr/bin/perl -w
my
$workbook
= Excel::Writer::XLSX->new(
'colors.xlsx'
);
my
$center
=
$workbook
->add_format(
align
=>
'center'
);
my
$heading
=
$workbook
->add_format(
align
=>
'center'
,
bold
=> 1 );
my
%colors
= (
0x08,
'black'
,
0x0C,
'blue'
,
0x10,
'brown'
,
0x0F,
'cyan'
,
0x17,
'gray'
,
0x11,
'green'
,
0x0B,
'lime'
,
0x0E,
'magenta'
,
0x12,
'navy'
,
0x35,
'orange'
,
0x21,
'pink'
,
0x14,
'purple'
,
0x0A,
'red'
,
0x16,
'silver'
,
0x09,
'white'
,
0x0D,
'yellow'
,
);
my
$worksheet1
=
$workbook
->add_worksheet(
'Named colors'
);
$worksheet1
->set_column( 0, 3, 15 );
$worksheet1
->
write
( 0, 0,
"Index"
,
$heading
);
$worksheet1
->
write
( 0, 1,
"Index"
,
$heading
);
$worksheet1
->
write
( 0, 2,
"Name"
,
$heading
);
$worksheet1
->
write
( 0, 3,
"Color"
,
$heading
);
my
$i
= 1;
while
(
my
(
$index
,
$color
) =
each
%colors
) {
my
$format
=
$workbook
->add_format(
fg_color
=>
$color
,
pattern
=> 1,
border
=> 1
);
$worksheet1
->
write
(
$i
+ 1, 0,
$index
,
$center
);
$worksheet1
->
write
(
$i
+ 1, 1,
sprintf
(
"0x%02X"
,
$index
),
$center
);
$worksheet1
->
write
(
$i
+ 1, 2,
$color
,
$center
);
$worksheet1
->
write
(
$i
+ 1, 3,
''
,
$format
);
$i
++;
}
my
$worksheet2
=
$workbook
->add_worksheet(
'Standard colors'
);
$worksheet2
->set_column( 0, 3, 15 );
$worksheet2
->
write
( 0, 0,
"Index"
,
$heading
);
$worksheet2
->
write
( 0, 1,
"Index"
,
$heading
);
$worksheet2
->
write
( 0, 2,
"Color"
,
$heading
);
$worksheet2
->
write
( 0, 3,
"Name"
,
$heading
);
for
my
$i
( 8 .. 63 ) {
my
$format
=
$workbook
->add_format(
fg_color
=>
$i
,
pattern
=> 1,
border
=> 1
);
$worksheet2
->
write
( (
$i
- 7 ), 0,
$i
,
$center
);
$worksheet2
->
write
( (
$i
- 7 ), 1,
sprintf
(
"0x%02X"
,
$i
),
$center
);
$worksheet2
->
write
( (
$i
- 7 ), 2,
''
,
$format
);
if
(
exists
$colors
{
$i
} ) {
$worksheet2
->
write
( (
$i
- 7 ), 3,
$colors
{
$i
},
$center
);
}
}