use Win32::OLE; ... my $application = Win32::OLE->GetActiveObject('Excel.Application') || Win32::OLE->new('Excel.Application'); # get already active Excel $application->{'Visible'} = 0; my $workbook = $application->Workbooks->Add(); my $worksheet = $workbook->Worksheets(1); my $now_time = time; my ($sec, $min, $hour, $mday, $mon, $year, $wday, $yday, $isdst) = localtime($now_time); my $start_time = $now_time - (($mday > $bscope ? ($mday -1) : $bscope) * 86400); $worksheet->Cells(1, 1)->{'Value'} = 'Wochentag'; $worksheet->Cells(1, 1)->Font->{'FontStyle'} = "Fett"; $worksheet->Cells(1, 2)->{'Value'} = 'Datum'; $worksheet->Cells(1, 2)->Font->{'FontStyle'} = "Fett"; $worksheet->Cells(1, 3)->{'Value'} = 'Arbeitszeit (h)'; $worksheet->Cells(1, 3)->Font->{'FontStyle'} = "Fett"; my $wosum = 0; for (my $t = $start_time, my $i = 2; $t < $now_time; $t += 86400) { my ($sec, $min, $hour, $mday, $mon, $year, $wday, $yday, $isdst) = localtime($t); my $iDay = sprintf ("%04d-%02d-%02d", $year + 1900, $mon + 1, $mday); (my $tt = $arbzeit{$iDay}) =~ s/,/\./; if ($mday == 1) { $worksheet->Cells($i, 2)->{'Value'} = 'Summe'; $worksheet->Cells($i, 2)->Font->{'FontStyle'} = "Fett"; $worksheet->Cells($i, 3)->{'Value'} = $wosum; $worksheet->Cells($i, 3)->Font->{'FontStyle'} = "Fett"; $wosum = 0; $i+= 2; $worksheet->Cells($i, 1)->{'Value'} = 'Monat ' . ($mon + 1); $worksheet->Cells($i, 1)->Font->{'FontStyle'} = "Fett"; $i++; } $worksheet->Cells($i, 1)->{'Value'} = qw/So Mo Di Mi Do Fr Sa/[$wday]; $worksheet->Cells($i, 2)->{'Value'} = $iDay; $worksheet->Cells($i, 3)->{'Value'} = exists $arbzeit{$iDay} ? $arbzeit{$iDay} : "-"; if ($tt > 10) { $worksheet->Cells($i, 3)->Font->{'ColorIndex'} = 3; } if ($tt == 7.6) { $worksheet->Cells($i, 4)->{'Value'} = 'Urlaub?'; } if ($wday == 0 || $wday == 6) { $worksheet->Cells($i, 1)->Font->{'ColorIndex'} = 5; $worksheet->Cells($i, 1)->Font->{'FontStyle'} = "Kursiv"; $worksheet->Cells($i, 2)->Font->{'ColorIndex'} = 5; $worksheet->Cells($i, 2)->Font->{'FontStyle'} = "Kursiv"; $worksheet->Cells($i, 3)->Font->{'ColorIndex'} = 3; $worksheet->Cells($i, 3)->Font->{'FontStyle'} = "Kursiv"; } $wosum += $tt; if ($wday == 0) { $i++; $worksheet->Cells($i, 2)->{'Value'} = 'Summe'; $worksheet->Cells($i, 2)->Font->{'FontStyle'} = "Fett"; $worksheet->Cells($i, 3)->{'Value'} = $wosum; $worksheet->Cells($i, 3)->Font->{'FontStyle'} = "Fett"; $wosum = 0; } $i++; } $application->{'Visible'} = 1; $workbook->{'Saved'} = 1;