Spreadsheet::WriteExcel is a module for producing spreadsheets in an Excel format. This format is virtually indiscernible from a file produced by Excel itself, meaning that it will be read flawlessly by MS Office applications, Gnumeric, and pretty much most other spreadsheet packages out there.
Excel is the de facto standard for spreadsheets these days. As far as I know, there exists no other format that allow multi-sheet spreadsheets, let alone formatting details that can be read by as many software applications. The fact that the 'standard' is not particularly open and is run by Microsoft makes it all the more impressive that Spreadsheet::WriteExcel works so well - I've never had a problem with anything it's produced ever. Most impressively, it runs on any platform, not just MSWin32 ones.
I highly recommend Spreadsheet::WriteExcel as a mechanism for providing downloadable forms of any tabular data that you have in your web pages... even if you don't use Windows (you can always read it back in with Perl's Spreadsheet::ParseExcel.)