use warnings; use Cwd; use OLE; use Win32::OLE::Const "Microsoft Excel"; my $directory = &getcwd; my ( $xl_report ) = "$directory/TemplateAuswertung.xlsx"; my ( $excel, $workbook, $sheet, $row); $excel = CreateObject OLE 'Excel.Application'; $excel -> {Visible} = 1; $workbook = $excel -> Workbooks -> Open ( "$xl_report" ) or &terminate ( "open $xl_report" ); $sheet = $workbook -> Worksheets(1); $sheet -> Activate(); $excel -> ActiveWindow -> {FreezePanes} = "True"; $sheet -> {Name} = "Test Report" . $workbook -> Worksheets -> {Count}; $excel -> {DisplayAlerts} = 0; $row = 16; for ($row = 16; $row <=20; $row++ ) { $sheet->Range( "A" . $row )->{Value} = "data"; #$sheet->Range( '17,1' )->Insert(); } $workbook -> SaveAs ( "$xl_report" ); $workbook -> Save; $workbook -> Close; $excel -> Quit; sub terminate { print "\a\a\nCould not @_ for the following reason:\n\n$!\n"; print "This program will now terminate. Press to exit."; ; exit; }