I've used this module many times for working with the Horrible Spreadsheet Format, and am always impressed by it. The interface, while perhaps not perfect, does try to make most common tasks easy. Where that isn't the case, there may be a module in the CPAN ecosystem that handles things. And if not, the extensive documentation and examples probably have some advice or sample code to cadge.
* Unicode: just write the string with utf8, and it Just Works. (S::WE converts the data into Excel's required UTF16BE format, so you don't have to care). Really pleased with this useful attention to detail!
* Dates: this doesn't quite Just Work, but it's well documented, so you just have to make sure you issue a ->write_date_time call instead of the usual ->write.
* Formatting: S::WE::Styler lets you sensibly reuse styles. Ideally this could be merged into the release
* Autofit columns: that's a feature of the Excel client, not of the spreadsheet format. But the examples suggest how to replicate the functionality, by adding a write-handler that guesstimates and stores the maximum width for a given column.
20 minutes flat from never having used Spreadsheet::WriteExcel, to having converted a script that used to output a formatless CSV that Excel kept asking me how to parse.
The module has comprehensive documentation and examples, and was very easy to get running with. Within 20 minutes I could easily learn the gist, lookup specific information about and currency formatting, write the code and have it output exactly what I wanted.
Very useful! I found I couldn't write the HYPERLINK function, however, since it was not defined in the hash in Formula.pm. But I figured out the code for HYPERLINK and added it. I didn't have a copy of the Excel Developer's Kit but was able to find the code from the following:
'HYPERLINK' => [ 359, -1, 1, 0 ],
BTW, in case you're wondering, I used HYPERLINK instead of write_url because I wanted to write a URL that was based on a value contained in another cell, and write_url appears to not allow mixing of internal and web addresses.
I use this module since 2002, I'm a fan of this module. I use it for making monthly reports for the happy user (so they do not bother me with question on how to import a plain CSV file on Excel/OpenOffice). They get the numbers on a easy to use Excel file, preformatted and colored.
I use this module under Linux (Debian and Suse) and Windows (Active State) without problems, so actually I can run the same reports on different platforms without modification.
Documentation is very good. I wish only more examples.
The interface is easy to learn.
Overall rating is "Very Good".
What more to ask? It takes seconds to learn the interface, another few seconds to write a test program. And if you've already got tabular fields such as SQL data, just a few more seconds to integrate into your application. A+. I use it with Spreadsheet::ParseExcel on a database project where the goal is to use Excel as the user-interface GUI.
I love it! I've used it for years, and it just gets better and better. I could not do my present job without it. It really eases automatic generation of presentation charts from voluminous output data.
Overall it is a very good module, but it takes a lot of work to tweak if the formatting is complicated. It also requires figuring out arcane Excel speadsheet formatting codes, half experimentation and hacking and half searching through the documentation.
It would be nice to be able to generate the spreadsheet entirely in memory rather than a new file, though.
an extremely useful module that helps keep developers on
the open source track by providing platform independence
from microsoft products. very well thought out and
written interface. and a very helpful author!
Another module that is used heavily here at work. Thorough documentation, nice API, easy to use. We've managed to automate a *lot* of very mundane and time consuming reporting thanks to Spreadsheet::WriteExcel.
Combined with Spreadsheet::ParseExcel, this module allows dynamic interaction with Excel documents as data stores. The biggest limitation is that fields are limited to 255 characters. This prevents interaction with the full range of documents. This module provides substantial support for the appearence-oriented features of Excel docs.