User since
2006-06-11
15
Artikel
BenutzerIn
Hallo Perl-Fans,
wie kann ich mit Perl eine Excel-Spalte sortieren (aufsteigend, absteigend) lassen. Habe das Modul Spreadsheet::WriteExcel bei meinem Programm im Einsatz aber ich finde keine Funktion um eine Spalte sortieren zu lassen!!
Wer weiss mehr?
Gruss und Danke
rommmi
User since
2006-03-21
47
Artikel
BenutzerIn
Mit Win32::OLE gehts so:
$sheet->Range("A2:E$excelLength")->Sort({
Key1 => $sheet->Range('a1'),
Order1 => xlAscending,
})
Wird dir wohl aber mit Spreadsheet::WriteExcel nicht viel nützen...
User since
2006-06-11
15
Artikel
BenutzerIn
Hallo renee,
danke erstmal! Ich habe das Modul auch gleich geladen, aber mir ist nicht ganz klar wie ich da in einem existierenden Excel-File die Spalte G bzw. die Zellen G3 bis G148 absteigend sortieren lassen kann?? Mein Excel-File heisst "Auswertung.xls" und liegt unter C:\
Ich bekomme ja schon Probleme beim Erstellen des Objekts. Ich will ja schliesslich schon auf ein bestehendes Excel-Sheet zugreifen. Wie mach ich denn das?
my $excel = Spreadsheet::SimpleExcel->new("C:\\Auswertung.xls");
da kommen aber Hash-Fehlermeldungen.
Das mit dem Sortieren ist dann wohl der Teil, oder?r:
$excel->sort_data('Name of Worksheet',0,'DESC');
Gruss
rommi
User since
2003-08-04
14371
Artikel
ModeratorIn
Achso, Du willst ein bestehendes Sheet bearbeiten?? Dann geht es (noch) nur mit
Win32::OLE (siehe Snippet von Teutales).
Ich hatte angenommen, dass Du Dir die Excel-Daten in dem Perl-Skript generierst (da Du
Spreadsheet::WriteExcel verwendest).
User since
2006-06-11
15
Artikel
BenutzerIn
@renee
da hab ich mich wohl ein bisschen unklar ausgedrückt! Danke für die schnelle Antwort.
@Teutales
Kann ich das auf ein bestehendes Excel-Sheet auch anwenden?
Da muss ich wohl erst ein Objekt ereugen und dann auf ein bestehendes Sheet zugreifen, oder? Soweit ich das auf die Schnelle in Win32::OLE nachgelesen habe.
$excelobjekt = Win32::OLE->GetActiveObject("Auswertung.xls");
und wie greife ich dann auf ein Arbeitsblatt zu dass in meiner Excel-Datei "Terminuebersicht" heisst? Und lasse dann die Zellen G3 bis G148 sortieren?
Gruss
rommmi
User since
2003-08-04
14371
Artikel
ModeratorIn
my $sheet = $excelobjekt->Worksheets("Terminuebersicht");
Hier findest Du noch ein paar Links zu Tutorials etc:
http://win32.perl.org/wiki/index.php?title=Win32_Perl_Modules
User since
2005-03-03
54
Artikel
BenutzerIn
Hallo renee u. teutales,
habt mir super weitergeholfen. Klappt alles, grazie!
gruss
rommmi
User since
2006-03-21
47
Artikel
BenutzerIn
Morgen! Freut mich geholfen zu haben...