In 2004, I had a client who insisted on excel spreadsheets for all the data reports. She didn't want to hear or learn about the importation of csv data. After a few days of handling the import myself in OpenOffice and exporting an .xls to email across the continent, I finally found Spreadsheet::WriteExcel and Text::CSV_XS, which in a day of study and coding permitted me to handle these nightly reports from an unattended cron job. Good thing, too, as I was getting little enough sleep as it was on that job.
-- Hugh