in reply to
Using Spreadsheet:WriteExcel or whatever else I need
There is a Spreadsheet::ParseExcel::SaveParser module that allows you to re-write an Excel file but it doesn't always work very well and in this particular case it can't be used to shift the rows down.
So, you will probably have to use Spreadsheet::ParseExcel to read the old file and then use Spreadsheet::WriteExcel to write the new one with the rows shifted down.
The feasibility of that depends on the complexity of the input file.