Thread Mehrere Excel Dateien einlesen (14 answers)
Opened by peet at 2012-08-21 11:16

payx
 2012-08-24 10:17
#161304 #161304
User since
2006-05-04
564 Artikel
BenutzerIn

user image
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

View full thread Mehrere Excel Dateien einlesen