Excel:...rt::Pie(3pm)
β¨ NAME β¨
Pie β a whole entire class for writing Excel Pie charts π₯§π
πΈ SYNOPSIS πΈ
So bestie, you wanna make a simple Excel file with a Pie chart using Excel::Writer::XLSX? Say less:
#!/usr/bin/perl
use strict;
use warnings;
use Excel::Writer::XLSX;
my $workbook = Excel::Writer::XLSX->new( 'chart.xlsx' );
my $worksheet = $workbook->add_worksheet();
my $chart = $workbook->add_chart( type => 'pie' );
# Configure the chart.
$chart->add_series(
categories => '=Sheet1!$A$2:$A$7',
values => '=Sheet1!$B$2:$B$7',
);
# Add the worksheet data the chart refers to.
my $data = [
[ 'Category', 2, 3, 4, 5, 6, 7 ],
[ 'Value', 1, 4, 5, 2, 1, 5 ],
];
$worksheet->write( 'A1', $data );
__END__
like that's it, that's the whole vibe π
π DESCRIPTION π
Okay so this module implements Pie charts for Excel::Writer::XLSX. You make the chart object with the Workbook add_chart() method:
my $chart = $workbook->add_chart( type => 'pie' );
Once the object exists, you can configure it with these methods that are common to all the chart classes:
$chart->add_series();
$chart->set_title();
These ones are explained in detail over in Excel::Writer::XLSX::Chart. Any class-specific methods or settings β if there even are any β get explained right down here π
π₯§ Pie Chart Methods π₯§
π« set_rotation() π«
The set_rotation() method sets the rotation of the first segment of a Pie/Doughnut chart. Which means it lowkey rotates the entire chart, no cap:
$chart->set_rotation( 90 );
The angle of rotation must be 0 <= rotation <= 360. Periodt.
π User defined colors π
You can define chart colors for most types of Excel::Writer::XLSX charts via the add_series() method. BUT. Pie/Doughnut charts are a special case, because each segment is represented as a point, so you literally have to assign formatting to every single point in the series:
$chart->add_series(
values => '=Sheet1!$A$1:$A$3',
points => [
{ fill => { color => '#FF0000' } },
{ fill => { color => '#CC0000' } },
{ fill => { color => '#990000' } },
],
);
See the main Excel::Writer::XLSX::Chart documentation for more deets π«Ά
Pie charts also support leader lines:
$chart->add_series(
name => 'Pie sales data',
categories => [ 'Sheet1', 1, 3, 0, 0 ],
values => [ 'Sheet1', 1, 3, 1, 1 ],
data_labels => {
series_name => 1,
percentage => 1,
leader_lines => 1,
position => 'outside_end'
},
);
π¨ Note: even when leader lines are turned on, they aren't automatically visible in Excel or Excel::Writer::XLSX. Due to an Excel limitation (or design, whatever π), leader lines only appear if the data label is moved manually, or if the data labels are very close and need to be adjusted automatically.
π Unsupported Methods π
A Pie chart doesn't have an X or Y axis, so the following common chart methods are just⦠ignored. Not me crying about it:
$chart->set_x_axis();
$chart->set_y_axis();
π₯ EXAMPLE π₯
Here's a complete example that demonstrates most of the available features when creating a chart. She's doing the most and we love her for it:
#!/usr/bin/perl
use strict;
use warnings;
use Excel::Writer::XLSX;
my $workbook = Excel::Writer::XLSX->new( 'chart_pie.xlsx' );
my $worksheet = $workbook->add_worksheet();
my $bold = $workbook->add_format( bold => 1 );
# Add the worksheet data that the charts will refer to.
my $headings = [ 'Category', 'Values' ];
my $data = [
[ 'Apple', 'Cherry', 'Pecan' ],
[ 60, 30, 10 ],
];
$worksheet->write( 'A1', $headings, $bold );
$worksheet->write( 'A2', $data );
# Create a new chart object. In this case an embedded chart.
my $chart = $workbook->add_chart( type => 'pie', embedded => 1 );
# Configure the series. Note the use of the array ref to define ranges:
# [ $sheetname, $row_start, $row_end, $col_start, $col_end ].
$chart->add_series(
name => 'Pie sales data',
categories => [ 'Sheet1', 1, 3, 0, 0 ],
values => [ 'Sheet1', 1, 3, 1, 1 ],
);
# Add a title.
$chart->set_title( name => 'Popular Pie Types' );
# Set an Excel chart style. Colors with white outline and shadow.
$chart->set_style( 10 );
# Insert the chart into the worksheet (with an offset).
$worksheet->insert_chart( 'C2', $chart, 25, 10 );
__END__
π AUTHOR π
John McNamara jmcnamara@cpan.org β the icon, the moment, the legend π
π COPYRIGHT π
Copyright MM-MMXXV, John McNamara.
All Rights Reserved. This module is free software. It may be used, redistributed and/or modified under the same terms as Perl itself. π«Ά
k bye bestie!! this is Excel:...rt::Pie(3pm) β aka the Perl doc for Excel::Writer::XLSX::Pie β coming at you from perl v5.40.1, dated 2025-12-22. go make some gorgeous pies fr fr π₯§β¨π
π¦ where this page comes from
- ubuntu resolute: libexcel-writer-xlsx-perl 1.15-1
- ubuntu stonking: libexcel-writer-xlsx-perl 1.15-1
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms