App-CSV2Chart
view release on metacpan or search on metacpan
lib/App/CSV2Chart/API/ToXLSX.pm view on Meta::CPAN
my $fn = $args->{output_fn};
my $title = $args->{title};
my $height = $args->{height};
my $width = $args->{width};
my $chart_type = ( $args->{chart_type} // 'scatter' );
my $csv = Text::CSV->new;
my $workbook = Excel::Writer::XLSX->new($fn);
my $headings = $csv->getline($fh);
my $worksheet = $workbook->add_worksheet();
my $bold = $workbook->add_format( bold => 1 );
# Add the worksheet data that the charts will refer to.
my $data = [ map { [] } @$headings ];
while ( my $row = $csv->getline($fh) )
{
while ( my ( $i, $v ) = each @$row )
{
push @{ $data->[$i] }, $v;
}
}
$worksheet->write( 'A1', $headings, $bold );
$worksheet->write( 'A2', $data );
my $w = @$headings;
my $h = @{ $data->[0] };
# Create a new chart object. In this case an embedded chart.
my $chart1 = $workbook->add_chart( type => $chart_type, embedded => 1 );
my @size = (
( defined($height) ? ( height => $height ) : () ),
( run in 1.316 second using v1.01-cache-2.11-cpan-39bf76dae61 )