User since
2007-01-09
192
Artikel
BenutzerIn
Ich habe in den Dokus von Spreadsheet::WriteExcel und Spreadsheet::ParseExcel nichts darüber gefunden.
Ich möchte Daten, die ich per WriteExcel schreibe, mit bis zu fünf Prioritätsebenen sortieren (z.B. Land -> Postleitzahl -> Sprache -> Broschüre -> Kundenberater); da mein Programm eh schon lahm und speicherfressend ist, wollte ich das Erstellen eines Perl-Arrays vermeiden (ich lese aus ParseExcel-Objekten und schreibe in ein WriteExcel-Objekt), was ich leicht selbst sortieren könnte. (Wenn ich es doch machen muss, gibts für solche Fälle ein effizientes Modul, vielleicht eins, dass in ein C-Array einliest?)
Es geht hier um bis zu 50,000 Datensätze, die in der Bearbeitung allein schon bis zu 10min Zeit benötigen (bei 1,6Ghz) + 1GB Arbeitsspeicherverbrauch.
User since
2003-08-04
14371
Artikel
ModeratorIn
Spreadsheet::WriteExcel kann das nicht... Wenn Du auf Win32 arbeitest, solltest Du mit
Win32::OLE direkt auf Excel zugreifen...
User since
2007-01-09
192
Artikel
BenutzerIn
[quote=renee,25.02.2007, 14:59]
Spreadsheet::WriteExcel kann das nicht... Wenn Du auf Win32 arbeitest, solltest Du mit
Win32::OLE direkt auf Excel zugreifen...[/quote]
Excel selbst kann nur Sortierungen mit 3 Prioritätsebenen durchführen, ich brauche 5.
User since
2007-01-09
192
Artikel
BenutzerIn
Kann mir jemand ein Modul empfehlen, mit der ich leicht und effizient sortieren kann?
User since
2006-08-08
11
Artikel
BenutzerIn
Ist vielleicht ein wenig OT, aber gab es da bei Excel nicht eine Grenze von 62.000 Datensätzen (mag bei den neueren Versionen anghoben sein), der Du mittlerweile ziemlich nahe kommst? In (fast) jeder DB könntest Du das Problem mit einem extra (Sortier)View elegant umgehen.
User since
2007-01-09
192
Artikel
BenutzerIn
Die Grenze ist 65,500 Datensätze, das ist bei Excel 2000 so.
extra sortierview? inwiefern umgehen?
User since
2003-08-07
2921
Artikel
BenutzerIn
[quote=GoodFella,25.02.2007, 19:50]Kann mir jemand ein Modul empfehlen, mit der ich leicht und effizient sortieren kann?[/quote]
Eventuell so was hier?
Sort::Array
User since
2003-08-04
14371
Artikel
ModeratorIn
[quote=GoodFella,26.02.2007, 01:18]Die Grenze ist 65,500 Datensätze, das ist bei Excel 2000 so.
extra sortierview? inwiefern umgehen?[/quote]
Indem Du statt Excel eine Datenbank nimmst... So hat es wiel vorgeschlagen...
User since
2007-01-09
192
Artikel
BenutzerIn
@pktm: Leider bietet dieses Modul nur das Sortieren nach einer Spalte, nicht nach 5, an.
@renee: Ich brauche als Output eine Exceldatei, weil diese für den Seriendruck benutzt wird. Sehe ich das richtig, du schlägst vor, dass ich die Daten in eine Datenbank einlese, sortiere, wieder auslese und dann in eine Exceldatei schreibe? Wenn ja, welche Art DB soll ich verwenden, die keine zusätzlichen Treiber / Installationen erfordert (denn genau das bräuchte ich dann)?
User since
2003-08-04
14371
Artikel
ModeratorIn
Schau Dir mal
DBD::Excel an. Das könnte Dir evtl. weiterhelfen. Ich habe es selbst aber noch nicht ausprobiert...