Ich habe mir schließlich einen Code geschrieben, der genau tut was ich brauche. Hierfür habe ich das Modul Excel::Writer::XLSX statt Spreadsheet::WirteExcel benutzt, da das letztere Zellen nicht ablesen kann.
Mit
$sheet->Cells($i+1,1)->EntireRow->Insert();
kann man später beim Ausfüllen immer eine Zeile nach der anderen hinzufügen, solange Daten verfügbar sind. Die Formatierung wird automatisch "mitinseriert"
Siehe Code im Anhang!
Anhänge