In your code above, why do you freeze the panes for every cell write? (Or at all?)
I was wondering the same. I do see value in $worksheet->set_column ($col, $col, $width); after the conversion.
Text::CSV and it's siblings may be faster at splitting lines.
unlikely, unless the code has embedded specials. I tested with a biggish CSV file with 6 fields:
$ cat data.pl use 5.18.2; use warnings; use Benchmark qw( cmpthese ); use Text::CSV_PP; use Text::CSV_XS; my ($fh, $csv); sub fh { open $fh, "<", "data.csv"; } sub cxs { $csv = Text::CSV_XS->new ({ binary => 1, sep_char => "|" }) +} sub cpp { $csv = Text::CSV_PP->new ({ binary => 1, sep_char => "|" }) +} cmpthese (4, { perl => sub { fh; while (my @row = split /\|/ => <$fh>) {} }, c_xs => sub { fh; cxs; while (my $row = $csv->getline ($fh)) {} }, c_pp => sub { fh; cpp; while (my $row = $csv->getline ($fh)) {} }, cbxs => sub { fh; cxs; $csv->bind_columns (\my($a,$b,$c,$d,$e,$f)) +; while ( $csv->getline ($fh)) {} }, }); $ perl data.pl Use of uninitialized value in split at data.pl line 15, <$fh> line 260 +0000. Use of uninitialized value in split at data.pl line 15, <$fh> line 280 +0000. Use of uninitialized value in split at data.pl line 15, <$fh> line 300 +0000. Use of uninitialized value in split at data.pl line 15, <$fh> line 320 +0000. Rate c_pp c_xs cbxs perl c_pp 8.87e-02/s -- -95% -96% -98% c_xs 1.85/s 1988% -- -25% -65% cbxs 2.45/s 2667% 33% -- -53% perl 5.26/s 5834% 184% 114% --
In reply to Re^2: Need help in reading csv files >1GB for converting into xlsx files in Solaris 10 - Perl v-5.8.4
by Tux
in thread Need help in reading csv files >1GB for converting into xlsx files in Solaris 10 - Perl v-5.8.4
by GT Learner
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |