Halihallo Andreas
Ich möchte eine Extranet-Anwendung schreiben, um von bestimmten Personen Informationen zu bekommen. Das soll nach folgendem Schema ablaufen:
Ich möchte z.B. von 10 Personen wissen, wieviel bei jedem von ihnen eine Luftmatratze und zwei Hängematten kosten.
Dann erstelle ich eine Excel-Datei von einer Vorlage(wichtig damit das später geparst werden kann, aber wo da die Grenzen liegen weiß ich selbst noch nicht) eine Tabelle, 1. Spalte die Produktbeschreibung, dann eine Spalte pro Person(Anbieter), wo derjenige dann seinen Preis eintragen soll.
Aber das soll er nicht selbst machen, das soll dann der Server übernehmen!
OK. Also etwa so:
Artikel | Anbieter 1 | Anbieter 2 | Anbieter 3
Lufti | 125.3 | 100.3 | 97.5
Hängi | 56.3 | 23.5 | 97.5
dies liegt in einer xls Datei vor, jedoch ohne Preise. Nachher soll jeder Anbieter über ein Formular den Preis eingeben können und dein Script soll dann den eingegebenen Preis in die xsl Datei schreiben und bei z. B. erneutem Laden (eg. Anbieter hat gemerkt, dass er seinen Preis falsch eingegeben hat) den Wert wieder aus der Excel Datei laden. Hab ich das soweit begriffen?
Wozu eigentlich xls? - Ich meine, hast du bereits eine vorgefertigte Vorlage mit ca. 10000 Anbietern und willst diese nicht manuell extrahieren, oder erwarten die Anbieter am Schluss die gesamte Liste im xls-Format?
Und wo sind eigentlich die E-Mail Adressen? - Wo sind die zusätzlichen Daten (eg. Produktbild, zweite Beschreibung etc.), welche du ansprichst? - Wo willst du die da unterbringen?
Und hier beginnen meine Probleme. Es gibt eine Menge Excel-Module von PERL, die sich mit Parsen von Excel beschäftigen und ich habe keinen Schimmer welches davon hier wohl geeignet sein könnte, vielleicht kennt sich ja hier einer aus, deshalb die genauere Beschreibung.
Nun, ich glaube, du kannst einige benutzen, die meisten dürfte das kein Problem darstellen (kann sein, dass einige mit Diagrammen nicht zurecht kommen, oder die Schriftformatierungen nicht mehr mitschreiben). Da hilft die wahrscheinlich nur testen.
Wenn bei den Modulen steht "verstehen Excel 2000", verstehen die dann auch XP(2002)?
Wenn nein, kannst du sie ja konvertieren und nachher wieder als Excel 2002 abspeichern.
Außerdem habe ich noch nicht so recht eine Idee, wie man sicherstellen kann, dass eine Excel-Datei auch korrekt interpretiert wird, d.h. das keine Fehler dabei auftreten, z.B. durch fehlerhaftes Eintragen der Daten in die .xls-Datei!
s. unten.
Weiteres Problem ist die Vielzahl der notwendigen Daten, z.B. email, oder weitere Produktspezifikation, Bild,..., es soll so einfach wie möglich sein, und ich weiß nicht so recht ob man eine DB dazu nehmen sollte, in der man derartige Daten ablegen kann, um in den Excel-Sheets nicht so viele Angaben machen zu müssen, auf der anderen Seite muß man dann die DB auch anlegen und pflegen...
Was meint Ihr grundsäztlich dazu?
Hm. Also ich würde mich grundsätzlich möglichst weit von xls hinwegbewegen, sprich, das lesen/schreiben der xls Datei nur am Anfang/Ende durchzuführen und alles, was dazwischen ist, über sonstige Lösungen machen (z. B. CVS, Datenbank, XML, ...). Der Vorteil bestünde darin, dass man sich auf etwas "gängigere" Formate konzentrieren könnte, sprich, mit den Modulen bereits "Erfahrung" gesammelt hat und sich nicht mit Excel herumschlagen muss. Zudem wäre es möglich, dass du das "Dazwischen" mit php Programmieren könntest, wo du ja mehr Erfahrung hast. Des weiteren hast du das Problem der "Datensicherheit" angesprochen, ich habe etwas mehr vertrauen zu XML, CVS oder Datenbank, als zu XLS-Parsern.
Also:
XLS per HTML hochladen => parse.pl Script aufrufen, welches alle Daten aus der XLS in ein gängiges Format abbildet. Dann send.php aufrufen, was die Links an die extrahierten e-Mails aus der ExcelDatei versendet. Klickt der Kunde auf den Link, wird show-and-input.php aufgerufen, wo die Daten geändert werden können (und in der DB, XML, CVS gespeichert wird). Am Ende kannst du write.pl aufrufen, was die Daten wieder in eine XLS packt... Ich denke, wenn du von "Vorlage" sprichst, hast du Angst, dass die Vorlagedaten (eg. Formeln) verloren gehen. Ich bin mir hier leider nicht sicher, jedoch denke ich, dass wenn ein XLS-Parser die Vorlagedaten richtig schreibt, sollte man ihn auch dazu veranlassen können, diese Daten "nachher" einzugeben. Mit anderen Worten: Warum sollte ein Parser Daten schreiben, die er selber nicht versteht? - bzw. woher will der Parser wissen, wo die nicht verstandenen Daten hingehören?
Zudem: Falls die Parser wirklich in der Lage sein sollten, diese Verluste zu unterlassen, auch wenn sie die Daten nicht verstehen, kannst du ja immer noch die Vorlage parsen und dann die Werte einsetzen (also mit write.pl genau das tun, was du sonst getan hättest, nur eben in einem Schritt).
Viele Grüsse
Philipp