#perl #excel
#perl #excel
Вопрос:
Кто-нибудь знает, возможно ли добавить больше форматирования к круговой диаграмме? Например, отображение процентов каждого фрагмента на самом графике или отображение меток каждого фрагмента рядом / на нем? Вместо того, чтобы иметь только одну простую легенду?
Спасибо!
Ответ №1:
Это невозможно с электронной таблицей::WriteExcel, но это возможно с Excel::Writer::XLSX.
Вот пример:
#!/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.
$chart->add_series(
name => 'Pie sales data',
categories => [ 'Sheet1', 1, 3, 0, 0 ],
values => [ 'Sheet1', 1, 3, 1, 1 ],
data_labels => { value => 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__
И это отображаемая диаграмма:
Комментарии:
1. Большое вам спасибо! Просто интересно, есть ли способ, чтобы Apple / Cherry / Pecan также отображались? Кроме того, я просмотрел Excel::Writer :: XLSX, и синтаксис кажется похожим, если не таким же, как Spreadsheet::WriteExcel. Это правда или я недостаточно внимательно смотрю?
2. Кроме того, возможно ли добавить в файл Excel, содержащий графики?
3. 1. К data_labels можно добавлять имена, значения или категории. Смотрите Chart.pm документы для получения дополнительной информации. 2. Синтаксис Excel::Writer::XLSX такой же, как у Spreadsheet::WriteExcel. Это совместимо с API. В настоящее время существуют некоторые различия в функциональности, см. Документы. 3. Невозможно добавить к существующему файлу Excel с помощью этого модуля.
4. (в процессе очистки) Не удается найти метод объекта «newdir» через пакет «File:: Temp» в / home/ gauravp/INSTALL /modules /lib / perl5 /site_perl / 5.8.8 / Excel / Writer / XLSX / Workbook.pm строка 823. — Я получаю эту ошибку. Есть исправление?
5. @virus нехорошо добавлять новые вопросы в конец другого вопроса. В любом случае, вам, вероятно, нужно обновить File::Temp.