in reply to Re: Got positive experince with excel modules ?
in thread Got positive experince with excel modules ?

I can support winds recommendations.

For working with Excel, I am using Win32::OLE a lot -and I am happy with it.

wind also proposes Spreadsheet::ParseExcel and Spreadsheet::WriteExcel. While I have never used them, they get recommended very often here ... so they are probably an excellent choice too.

Have fun! Rata

update: explanation of "nasty": (thanks for the feedback, davies)

I typically get a lot of data from our databases and create some grouping and statistics. The result should be reported in Excel. Of course the readers want the resulting Excel-sheets to look nice - some text should be bold, some normal, some cells need borders, different column widths, different background-colors ...

Of course it can be done with Win32::OLE. This link shows how. But soon I had hundreds of lines of pure Excel-formatting - many more than needed for retrieving, processing and writing the data. And I didn't like that. Especially after receiving requests to change column-orders and style-changes. That's why I consider it being "nasty" - and went to the manually-formatted template-solution.

  • Comment on Re^2: Got positive experience with excel modules ?

Replies are listed 'Best First'.
Re^3: Got positive experience with excel modules ?
by davies (Monsignor) on May 04, 2011 at 13:45 UTC

    I, too, have no experience of anything beyond Win32::OLE, but that's because I'm always on Windows and usually doing something that's pushing at or beyond the limits of WriteExcel. I have had no trouble at all with it, and have even found it to circumvent at least one VBA "issue" (see Re: Win32 Ole find 2nd to last column in Excel).

    I very rarely work with charts, and never that I can remember in Perl, but I don't have your objection to formatting cells. I don't see what's "nasty" about Re: Formatting cells in Excel, except that I haven't put the format string in a constant. But I'm always keen to learn, so please tell me more!

    Regards,

    John Davies