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.041 second using v1.01-cache-2.11-cpan-c333fce770f )