My first piece of advice would be to try to get the data exported from excel in tab-separated or comma-separated formats, so you don't have to touch the actual excel file. Those file formats are a MESS. If that's not feasable, quick search of CPAN produces
Spreadsheet::ParseExcel
Enjoy
Trinary