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