my $ws = $wb->add_worksheet($ws_name) or
die "Unable to add worksheet to workbook";
my $row = 1;
+ my @header_row;
+ my $overflow = 0;
while (<$fh>) {
chomp;
# parse the line
my @row;
die "Unable to parse line $. of $file" unless $csv->parse($_);
- if ($row==1) {
+ if ($row==1 and $options{rmode}) {
+ # R doesn't output headers for rownames
push @row,'';
}
+ if ($row > 65536) { # ok, we're going to overflow here
+ my $t_ws_name = $ws_name;
+ my $maxlen = 31-length('.'.$overflow);
+ $t_ws_name =~ s{^(.{0,$maxlen}).*$}{$1};
+ $ws = $wb->add_worksheet($ws_name.'.'.$overflow);
+ $row=1;
+ for my $i (0..@header_row) {
+ $ws->write($columns[$i].$row,$header_row[$i]);
+ }
+ $row++;
+ }
push @row,$csv->fields();
+ if ($row==1) {
+ @header_row = @row;
+ }
for my $i (0..$#row) {
$ws->write($columns[$i].$row,$row[$i]);
}