Beefy Boxes and Bandwidth Generously Provided by pair Networks
Perl Monk, Perl Meditation

comment on

( #3333=superdoc: print w/replies, xml ) Need Help??

it being perl? Your boss?

If you make errors like these it is likely not do do what you expect it to do.

  • I used code tags
  • I restyled the code for readability
  • I fixed all obvious errors
  • I commented on the changes with # <-
  • I replaced the unmaintained parser with the right one: this is the main reason I reply.


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.

Enjoy, Have FUN! H.Merijn

In reply to Re: Reading and printing an XLSX file by Tux
in thread Reading and printing an XLSX file by jsuresh

Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post; it's "PerlMonks-approved HTML":

  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.
  • Log In?

    What's my password?
    Create A New User
    and the web crawler heard nothing...

    How do I use this? | Other CB clients
    Other Users?
    Others avoiding work at the Monastery: (3)
    As of 2019-05-27 07:18 GMT
    Find Nodes?
      Voting Booth?
      Do you enjoy 3D movies?

      Results (155 votes). Check out past polls.

      • (Sep 10, 2018 at 22:53 UTC) Welcome new users!