Beefy Boxes and Bandwidth Generously Provided by pair Networks
Keep It Simple, Stupid

Two issues with XLSX reporting

by lihao (Monk)
on Sep 27, 2012 at 17:20 UTC ( #996053=perlquestion: print w/replies, xml ) Need Help??
lihao has asked for the wisdom of the Perl Monks concerning the following question:

(1) I am using Excel::Writer::XLSX, one of the issues is that the function write_url() does not work well when there is any '&' on the URL. this looks OK if I change '&' to '&', I am not sure if this is a correct solution, the resulting XLSX file yields some waring information after being opened.

(2) need to send out daily report (i.e. report-yyyymmdd.xlsx) in an email attachment by using MIME::Lite. I tried setting Type as 'AUTO', 'application/', 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'. none of these are working and the attached file can not be opened properly. The file is OK if I scp to my local server and open it directly (not in email attachment).

I was using Spreadsheet::WriteExcel and Excel 97-2003, no above issues at all. but I do need some new functionality in Excel 2010. Any suggestions

many thanks in advance


Replies are listed 'Best First'.
Re: Two issues with XLSX reporting
by jmcnamara (Monsignor) on Sep 27, 2012 at 20:26 UTC

    The first issue is a bug. I'll post a fix for it shortly.

    I don't know what the second issue is. Does it happen when you use a file generated by Excel rather than by Excel::Writer::XLSX?

    Update: The first issue is fixed on the master branch in the Github repo and will make its way into version 0.52 in a few weeks.


      Thank you John, I've got another issue fixed. the content_type should be 'application/zip' which resolved my issue.

        Lihao, here's what i used and it doesn't work: my $mail = MIME::Lite->new(
        From =>'',
        To =>'',
        #Cc =>'',
        Subject =>'Hello!',
        Data =>"How's it goin', eh?",
        Type => 'multipart/mixed',
        content-type.charset => 'UTF-8',
        content-type => 'application/zip'

        Type => 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet',
        #Encoding => 'base64',
        Path => 'report.xlsx',
        #Filename => 'report.xlsx'
        Disposition => 'attachment'

        please advise!
      I have one more question, can we make Sparklines (similar to Charts) with Excel::Writer::XLSX. that would be really cool if it does..:)

        Good to know about the application/zip type.

        Sparklines are on the TODO list but I don't have a timeframe for them, at the moment.


Re: Two issues with XLSX reporting
by MidLifeXis (Monsignor) on Sep 27, 2012 at 17:30 UTC

    Can you generate a short perl script that illustrates the issue? Include the version of E::W::XLSX that you are using, and please wrap your example in <code>...</code> tags.


      issues are: without adjusting '&', I will get a warning notification and the url won't work in the Excel. the email attachment won't work at all for my configurations with MIME::Lite. I am using perl 5.8.8 (servers are RHEL 5.8 or 6.2). Excel::Writer::XLSX version 0.51, MIME::Lite version 3.027. A sample is shown below, many thanks.

      #!/usr/bin/perl use strict; use warnings; use Excel::Writer::XLSX; use MIME::Lite; my $report_file = 'hyperlink.xlsx'; # Create a new workbook and add a worksheet my $workbook = Excel::Writer::XLSX->new($report_file); my $worksheet = $workbook->add_worksheet('Hyperlinks'); # Add the standard url link format. my $url_format = $workbook->add_format( color => 'blue', underline => 1, ); $worksheet->write( 'A1', 'Some Content'); $worksheet->write( 'A3', '', $url_format, +'Perl home with query string' ); $workbook->close(); my $msg = MIME::Lite->new( From => '', To => '', Subject => "Testing Report - 2012-09-27", Type => 'multipart/mixed' ); $msg->attach( Type => 'text/plain', Data => 'This is a testing email', ); $msg->attach( #Type => 'AUTO', #Type => 'application/', Type => 'application/vnd.openxmlformats-officedocument.spre +adsheetml.sheet', Path => $report_file, Disposition => 'attachment', ); $msg->send(); __END__

Log In?

What's my password?
Create A New User
Node Status?
node history
Node Type: perlquestion [id://996053]
Approved by davies
Front-paged by MidLifeXis
and all is quiet...

How do I use this? | Other CB clients
Other Users?
Others taking refuge in the Monastery: (3)
As of 2018-02-25 11:23 GMT
Find Nodes?
    Voting Booth?
    When it is dark outside I am happiest to see ...

    Results (312 votes). Check out past polls.