Excel is a hoary binary file format. You have four choices:
* Export as an Excel binary formathttp://search.cpan.org/perldoc?Catalyst::View::Excel::Template::Plus. You have choices of Excel 2003 and 2007 format exporters from CPAN. Go look there.
* Export as WKS, an old but simple Lotus format that allows basic use of Excel functions.
* Export as a boring format that Excel can read. Typical choices are tab-separated and CSV. Neither has formatting.
* For tab-separated, avoid tabs and newlines in your field contents.
* For CSV, use a suitable CSV formatter, and you'll be able to output commas and newlines. However, Excel generally screws up UTF8 characters when CSV reading (and this varies for Excels for different countries - Japanese Excel works for files that English Excel doesn't like, so beware!)
* If you're cunning, you can output a very plain table of data and Excel will use it via its 'web query' functionality. There are caveats - specifically, Excel will not normally deal with form-based authentication when doing this - but in this case you can create a web query in a complex document and the document can be made to update from the data in the website every time it's opened.
A couple Catalyst modules are available for making Excel files:
* [Catalyst::View::Excel::Template::Plus](http://search.cpan.org/perldoc?Catalyst::View::Excel::Template::Plus)
Renders Excel files using [Excel::Template::Plus](http://search.cpan.org/perldoc?Excel::Template::Plus) .
* [Catalyst::Action::Serialize::SimpleExcel](http://search.cpan.org/perldoc?Catalyst::Action::Serialize::SimpleExcel) renders simple tabular data to a worksheet, for use with [Catalyst::Controller::REST](http://search.cpan.org/perldoc?Catalyst::Controller::REST) .