in reply to Re: Plot a chart
in thread Plot a chart

Thanks, poj. Your script works just fine. I wonder if there's a scope issue in my script. Something inside the for loop is not right IMO. Does anyone see it?

Replies are listed 'Best First'.
Re^3: Plot a chart
by poj (Abbot) on Jul 24, 2014 at 09:44 UTC
    Try reading your csv files with Text:CSV_XS, adding use strict; use warnings and some print diagnostics.
    #!perl use strict; use warnings; use Spreadsheet::WriteExcel; use Text::CSV_XS; my $csv = Text::CSV_XS->new({ binary => 1, sep_char => ',', eol => "\n"}); my $xlsfile = 'c:/temp/xyz_stat1.xls'; my $workbook = Spreadsheet::WriteExcel->new($xlsfile) or die $!; my $num_files = $ARGV[0] || 0; for my $k (1..$num_files){ my $csvfile = $ARGV[$k]; print "Opening $csvfile .. "; open my $fh, '<', $csvfile or die "Cannot open $csvfile : $!"; my $sheet = $workbook->add_worksheet('sim_'.$k); my $ar = $csv->getline_all($fh); $sheet->write_col(0,0,$ar); close $fh; print scalar (@$ar). " lines read into sheet sim_$k\n"; } $workbook->close; print "$xlsfile created\n";
    poj

      The issue is that the numbers are being written as strings or characters, second column onward. So it's not able to print it. Either of these two fixes will work.

      1. Account for white spaces:

      my @frame_stats = split(/,\s+/,$line);

      2. Use "write_number":

      $worksheet[$k]->write_number($frm_num, $col, $el);

      Thanks a bunch for all your help!!