#!/usr/bin/perl ################################################ # toexcel --Peter Richter ################################################ use CGI; use CGI::Carp qw(fatalsToBrowser); use Spreadsheet::WriteExcel; ############################### Variablen entschluesseln ################################## if ($ENV{REQUEST_METHOD} eq GET) { $Eingabe=$ENV{QUERY_STRING}; } else { read(STDIN, $Eingabe, $ENV{CONTENT_LENGTH}); } @Paare=split(/&/, $Eingabe); foreach $Paar (@Paare) { ($Schluessel, $Wert)=split(/=/, $Paar); $Wert=~tr/+ //; $Wert=~s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg; $FORM{$Schluessel}=$Wert; } ############################################################################################ my $PFAD="/perf_Data/Server"; # zum testen $FORM{Serverliste}=dcbpc111; $FORM{Monat}=10; $FORM{Tag}=24; $FORM{Perftyp}=CPU; my $IN = "$PFAD/$FORM{Serverliste}/$FORM{Monat}/$FORM{Tag}/$FORM{Perftyp}/$FORM{Serverliste}" . ".cpu"; # Eingabedatei my $OUT = "/perf_Data/tmp/$FORM{Serverliste}" . ".cpu.xls"; # Ausgabe-(Excel)-Datei my $book = Spreadsheet::WriteExcel->new($OUT); my $sheet = $book->addworksheet(); my $format = $book->addformat(font => "Arial", size => 8); open IN, "<$IN" or die "Can not open $IN"; my $row=0; # Titel in Excel setzen $sheet->write($row, 0, "Run-Queue", $format); $sheet->write($row, 1, "Block-Queue", $format); $sheet->write($row, 2, "Wait-Queue", $format); $sheet->write($row, 3, "User-CPU", $format); $sheet->write($row, 4, "System-CPU", $format); $sheet->write($row, 5, "Ges-CPU", $format); $sheet->write($row, 6, "Zeit", $format); while() { $row++; chomp; my($run, $block, $wait, $user, $system, $ges, $zeit)=(split/\s+/,$_)[0,1,2,3,4,5,6]; # Reihe, Spalte, Wert, Format (Format siehe oben) $sheet->write($row, 0, $run, $format); $sheet->write($row, 1, $block, $format); $sheet->write($row, 2, $wait, $format); $sheet->write($row, 3, $user, $format); $sheet->write($row, 4, $system, $format); $sheet->write($row, 5, $ges, $format); $sheet->write($row, 6, $zeit, $format); } close IN; $book->close();