toncelli,
I recently had a similar task and needed to rely on Spreadsheet::ParseExcel and Spreadsheet::WriteExcel as the work was being performed on a *nix platform. I found Re: open workbook-WriteExcel helpful but I had to break encapsulation several times to preserve formatting when modifying existing cells. Let me know if you go this route and have specific problems.