If you're on a Windows box with Excel installed, you do have another route available to: Win32::OLE. With this module, you can get the following items from a cell: value, formatted value, and formula. However, if you're on a *nix or Mac, I'm not sure what to suggest as an alternative.
You'll definitely have a steeper learning with Win32::OLE, but it's advantage is that you can do more in an Excel file than you can with Spreadsheet::ParseExcel. However, Spreadsheet::ParseExcel has the advantage when you don't have Excel for Perl to manipulate through Win32::OLE, such as working in a *nix environment. Overall, which one is better depends on the programmer, his/her environment and what he/she needs to do.