Thread Mehrere Excel Dateien einlesen
(14 answers)
Opened by peet at 2012-08-21 11:16
Hallo peet,
Du brauchst dann eine Schleife über die Zeilen, z.B. so (angelehnt an mein vorheriges schnell-schnell-Beispiel aber ein bisschen mehr an die Empfehlungen der Modul-Doku angenähert): Code (perl): (dl
)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 #!/usr/bin/perl/ use strict; use warnings; use Spreadsheet::ParseExcel; # Pfad zur Exceldatei my $xls = 'exceldatei.xls'; # Parser-Objekt erzeugen my $parser = Spreadsheet::ParseExcel->new(); # Exceldatei öffnen my $workbook = $parser->parse($xls); # Prüfen, ob das geklappt hat die "Geht nicht: ", $parser->error(), ".\n" unless defined $workbook; # Das erste Arbeitsblatt (Index [0]) my $worksheet = ($workbook->worksheets())[0]; # Der Index der ersten Spalte (A in Excel) my $col = 0; # Wie viele Zeilen hat das Arbeitsblatt? (Genauer: Wie lautet der Index der letzten Zeile?) my $lastRow = ($worksheet->row_range())[1]; # Schleife: Zähle von 0 (=erste Zeile) bis zur letzten Zeile for my $row (0..$lastRow) { # Drucke die Zelladresse (im Excel-Stil, geht aber so nur bis Spalte Z) print chr($col+65) . ($row+1) . ": "; # Wenn die Zelle leer ist, bringt die ->value()-Methode Fehler, deshalb Prüfung if (my $cell = $worksheet->get_cell($row, $col)) { print $cell->value(); } print "\n"; } Wenn Du nun auch noch die Daten aus mehreren Arbeitsblättern verarbeiten willst, brauchst Du eine weitere Schleife über den worksheet-Index. HTH Grüße payx |