in reply to Reading and printing an XLSX file
it being perl? Your boss?
If you make errors like these it is likely not do do what you expect it to do.
HTH
use strict; # <- always use strict use warnings; # <- and warnings use Spreadsheet::WriteExcel; # <- missing declaration #use Spreadsheet::XLSX; # <- this module is *STRONGLY* di +scouraged! use Spreadsheet::ParseXLSX; # <- use this one instead #my $excel = Spreadsheet::XLSX->new ("/tmp/temp.xlsx"); # <- do not us +e Spreadsheet::XLSX my $excel = Spreadsheet::ParseXLSX->new->parse ("/tmp/temp.xlsx"); # print $excel; # <- you cannot simply print an object and hope it wri +tes a file # if you want to see what this is use Data::Peek or Data::Dumper #my @array; # <- unused #my $workbook = Excel::Writer::XLSX->new ("perl.xlsx"); # ^--- Your code uses ->addworksheet, which is Spreadsheet::WriteExcel + syntax and # not supported by Excel::Writer::XLSX, so you obviously do not w +ant this line my $FILENAME = "/tmp/Newfile.xls"; # <- used but commented out my $workbook = Spreadsheet::WriteExcel->new ($FILENAME); # <-- no qu +otes needed # ^--- variable used twice my $worksheet1 = $workbook->addworksheet ("Worksheet1"); $worksheet1->write ("A1", "Hi Excel!"); foreach my $sheet (@{$excel->{Worksheet}}) { print "Sheet: $sheet->{Name}\n"; # <- not really a good example fo +r printf $sheet->{MaxRow} ||= $sheet->{MinRow}; foreach my $row ($sheet->{MinRow} .. $sheet->{MaxRow}) { $sheet->{MaxCol} ||= $sheet->{MinCol}; foreach my $col ($sheet->{MinCol} .. $sheet->{MaxCol}) { my $cell = $sheet->{Cells}[$row][$col] or next; printf "(%3d, %3d) => %s\n", $row, $col, $cell->{Val}; my $temp = $cell->{Val}; $worksheet1->write ($row, $col, $cell->{Val}); } } last; # <- missing ; } # <- missing }
That code correctly created /tmp/Newfile.xls with one sheet named Worksheet1.
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re^2: Reading and printing an XLSX file
by jsuresh (Acolyte) on Mar 21, 2019 at 10:54 UTC | |
by Tux (Canon) on Mar 21, 2019 at 11:09 UTC | |
by marto (Cardinal) on Mar 21, 2019 at 11:02 UTC |