I have had a great bit with Spreadsheet::WriteExcel, it has been fun to learn it and all most of the times,, but it got some drawbacks and rigidity, I won't speculate on your problem but some will advice you to learn
Win32::OLE module, I think it holds much water.
for Spreadsheet::WriteExcel I can ask you to check http://www.koders.com/info.aspx?c=ProjectInfo&pid=WZKBNF1X3ERMTDSA4BGQNFCQSF for examples that might conform to your specific question and the method in focus.
Excellence is an Endeavor of Persistence.
Chance Favors a Prepared Mind