#these run parallel to items, and can be given as hashes
'row_labels' => \@row_labels, #required
'colors' => \@colors, #required
+ 'bgcolors' => \@bgcolors, #optional
'graph_labels' => \@graph_labels, #defaults to row_labels
'links' => \@links, #optional
#optional
'nototal' => 1,
- 'graph_type' => 'LinesPoints',
+ 'graph_type' => 'LinesPoints', #can be 'none' for no graph
'bottom_total' => 1,
'sprintf' => '%u', #sprintf format, overrides default %.2f
'disable_money' => 1,
%
% my @bottom_total = ();
% my $row = 0;
-% foreach ( @items ) {
+% foreach my $i ( @items ) {
%
% my $col = 0;
-% my @row = map { sprintf($sprintf, $_) } @{ shift(@data) };
+% my @row = map { sprintf($sprintf_fields->{$i} ? $sprintf_fields->{$i} : $sprintf, $_) } @{ shift(@data) };
% my $total = sum(@row);
% push @row, sprintf($sprintf, $total) unless $opt{'nototal'};
% unless ($opt{'no_graph'}[$row]) {
% }
%
% my @bottom_total = ();
-% foreach ( @items ) {
+% foreach my $i ( @items ) {
% $row++;
% $col = 0;
% my $total = 0;
% foreach ( @{ shift( @data ) } ) {
% $total += $_;
% $bottom_total[$col-1] += $_ unless $opt{no_graph}[$row];
-% $worksheet->write_number($row, $col++, sprintf($sprintf, $_) );
+% $worksheet->write_number($row, $col++, sprintf($sprintf_fields->{$i} ? $sprintf_fields->{$i} : $sprintf, $_) );
% }
% if ( !$opt{'nototal'} ) {
% $bottom_total[$col-1] += $total unless $opt{no_graph}[$row];
% foreach my $row ( @items ) {
% #make a style
% my $color = shift @{ $opt{'colors'} };
-% push @styles, ".i$i { text-align: right; color: #$color; }";
+% my $bgcolor = $opt{'bgcolors'} ? (shift @{ $opt{'bgcolors'} }) : 'ffffff';
+% push @styles, ".i$i { text-align: right; color: #$color; background: #$bgcolor; }";
% #create the data row
% my $links = shift @{$opt{'links'}} || [''];
% my $link_prefix = shift @$links;
% my $e = 0;
% foreach ( @$data_row ) {
% my $entry = $_;
-% $entry = $money_char . sprintf($sprintf, $entry);
+% $entry = $money_char . sprintf($sprintf_fields->{$row} ? $sprintf_fields->{$row} : $sprintf, $entry);
% $entry = $link_prefix . shift(@$links) . "\">$entry</A>" if $link_prefix;
% push @{$cell[$i]}, $entry;
% $bottom_total[$e++] += $_ unless $opt{no_graph}[$i-1];
my $money_char = $opt{'disable_money'} ? '' : $conf->config('money_char');
my @items = @{ $opt{'items'} };
+my $sprintf_fields = $opt{'sprintf_fields'};
foreach my $other (qw( col_labels row_labels graph_labels axis_labels colors links )) {
if ( ref($opt{$other}) eq 'HASH' ) {