AW: [Vienna-pm] 8MB Excel-File

Nagy Wilhelm wilhelm.nagy at umweltbundesamt.at
Sun Apr 17 23:20:34 PDT 2005


Hallo,

Willkommen im Excel-User Club - lass alle hoffnung fahren... -

Also das Excel-Bin-Format konnt bis Excel 5 16383 genannt zeilen
verarbeiten.
Diese Begrenzung wurde dann (moorsches gesetz) auf 32k spaeter auf 64k
(65536 Excel 2002) erweitert. Spaltenzahl blieb bei 256.

Das Spreadsheet::ParseExcel / und sein an sich geniales gegenstück
Spreadsheet::WriteExcel basieren auf der Excl95 Variante (jedenfalls der
W32-Port). 

Es ist also nicht die Filegroesse sonder die Excel-Machine die sorgen
bereitet. 

CSV-Methode welche Vorgeschlagen wurde halte ich noch fuer die beste.
Jedenfalls mache is das so bei grossen Files.

Eine Interessante Kleinigkeit ist dann noch zu beachten:
Verwendete man zB: Tab als Spaltentrenner und Nuezter schreiben diese in
Zellen (ebenso mit Komma oder Semikolon)
oder verwenden Nutzer Zeilenumbruch <cr> in die Zellen (alt-return) so wird
schnell aus einem kleinen einleseprogramm
ein grosses...

Wenn irgendeine W32-Maschine im Datenfluss vorhanden ist und der benutzer
kein CSV File erzeugen KANN (ja das kommt öffters vor als man denkt) so
empfehle ich folgendes vorgehen:

User tippelt und klickt fröhlich im excel und speicher diese ab.

Ein weiteres Excel mit schönen Druckknöpfen ausgestattet Liest das Excel ein
und mache es unter zuhilfenahem von VBA (keine angst sind nur ein paar
zeilen) zu einem CSV und schickt das ganze gleich weiter (FTP udergl.).

Variante 2:

Ein Activstate perl ist irgendwo im Datnfluss installiert. Dieses kann dann
via OLE Excel bewurzeln und Verarbeiten (Dabei gibt's nur die EXCEL
beschränkungen der konkreten Maschine).

Zusatz zu Variante 2

Ein Activstate perl kann mittels perl2app zu einem Exe-File kompeliert
werden (man kann auch PAR ein huepsches paeckchen schnueren). Mit ein
bisschen Tk wird dann putzig-klikerrig. So kann die Excel-Konvert-Version
durch perl ersetzt werden.

Leider keine allzuguten nachrichten - aber ich hoffe es hilft.

Lg
\^/ili




> -----Ursprüngliche Nachricht-----
> Von: Carl A. Schreiber [mailto:gooly at gmx.at] 
> Gesendet: Samstag, 16. April 2005 14:19
> An: vienna-pm at pm.org
> Betreff: [Vienna-pm] 8MB Excel-File
> 
> 
> Hallo,
> 
> ich möchte Daten aus einem Excel-File (auf Linux mit Perl) 
> extrahieren, dazu 
> gibt es ja Spreadsheet::ParseExcel bzw 
> Spreadsheet::ParseExcel::Simple, 
> aaaber  diese Module laden nur 16383 Zeilen (Rows), während 
> Open Office auch 
> nicht all aber immerhin 32000 Zeilen lädt - gibt es da einen Ausweg?
> 
> Meine konkrete Frage geht in Richtung einer Perl-Begrenzung. 
> Im Sourcecode von Spreadsheet::ParseExcel habe ich bei einem 
> schnellen 
> Überblick und einer Suche nach den bestimmten Variablen 
> nichts gefunden, das 
> das Einlesen begrenzt, Frage gibt es in Perl 'Obergrenzen' 
> für Elemente in 
> einem Modul oder so was, kennt jemand eine Möglichkeit?
> 
> Danke schon mal und ein schönes Wochenende,
> Calli
> _______________________________________________
> Vienna-pm mailing list
> Vienna-pm at pm.org
> http://mail.pm.org/mailman/listinfo/vienna-pm
> 
> 




More information about the Vienna-pm mailing list