Sebastian Becker: Speisekarte in Exceltabelle nach HTML konvertieren

Hallo,

für eine Restaurantseite soll die Speisekarte sowie die Tages- und Wochenkarte im Internet angeboten werden. Meine Idee war jetzt folgende:

Die Karten werden mit Excel erstellt. Der Ausdruck erfolgt über Word (evtl. mit der Serienbrieffunktion?). Fürs Internet werden die Dateien vom Restaurantbetreiber regelmäßig über ein Formular auf den Server geladen. Dort werden sie dann mit PHP geparst und schön formatiert als HTML und evtl auch als PDF ausgegeben.

Nun meine Fragen: Ist das die einfachste Methode - Office-Paket vorausgesetzt - um mit einmaliger Dateneingabe Print und Internet gleichzeitig zu bedienen, oder weiß jemand eine bessere Alternative?

Wie kann ich die Excel-Dateien am besten parsen (Linux-Server), möglichst mit einer Bibliothek auf Open-Source-Basis?

Danke für alle Tips, Grüße,

Sebastian Becker

  1. Ahoi Sebastian Becker,

    Wie kann ich die Excel-Dateien am besten parsen (Linux-Server), möglichst mit einer Bibliothek auf Open-Source-Basis?

    am besten wäre wohl die exel tabelle als csv zu speichern. dadurch hat
    man jede zeile in einer zeile und durch semikolen getrennt, das
    umwandeln in eine html tabelle oder pdf (da bietet sich fpdf an)

    zelle1_1;zelle1_2;zelle1_3;
    zelle2_1;zelle2_2;zelle2_3;
    etc.

    wobei die speisekarte wohl 2 spaltig ist (essen;preis;)

    MfG

    --
    Alle Angaben wie immer ohne Gewähr
    \     \           /    /              \    \          /     /
     \     \         /    /                \    \        /     /
      \     /´¯.l.¯\    /                  \   /´¯.l.¯\     /
      |    l   .l.  (¯ '\                   /' ¯)  .l.   1    |
      l    l   .l.   \   \                 /   /   .l.   1    1
      l    l´¯.l´¯.l  \  '|               |'  /  1.¯´1.¯´1    1
      \                                                       /
    1. Hallo, Daniel,

      am besten wäre wohl die exel tabelle als csv zu speichern.

      Das wäre noch eine Idee. Ich weiß aber nicht, ob ich das den Restaurantleuten beibringen kann - wahrscheinlich wollen Sie die Tabellen irgendwie formatieren und wissen nicht, wie man als CSV abspeichert, und schon kann man das Ganze vergessen. Besser wäre es also, das Original Excel-Format zu verwenden, und dafür brauche ich wie gesagt einen Parser ...

      wobei die speisekarte wohl 2 spaltig ist (essen;preis;)

      Fünfspaltig: Datum, Essen, Beschreibung, Preis, Kategorie

      Grüße,

      Sebastian

      1. Hi Sebastian,

        am besten wäre wohl die exel tabelle als csv zu speichern.

        Das sehe ich auch so.

        Das wäre noch eine Idee. Ich weiß aber nicht, ob ich das den Restaurantleuten beibringen kann - wahrscheinlich wollen Sie die Tabellen irgendwie formatieren und wissen nicht, wie man als CSV abspeichert, und schon kann man das Ganze vergessen.

        Eigentlich sollte das nicht das Problem sein. Wichtig ist, daß die Daten immer in den gleichen Spalten gespeichert sind, die Zeilen spielen nicht die große Rolle. Dann eine kleine VBA-Routine erstellen, irgendwo eine Schaltfläche oder einen Menüeintrag einbauen und schon wird die csv-Datei automatisch erstellt.

        Eine weitere Möglichkeit wäre, die Daten mittels Formeln in eine unformatierte Tabelle zu übernehmen und die dann als csv zu zu speichern. Bei solchen Sachen bin ich allerdings immer leicht skeptisch, weil Formeln von Anwendern auch gern mal gelöscht werden.

        Besser wäre es also, das Original Excel-Format zu verwenden, und dafür brauche ich wie gesagt einen Parser ...

        Hm, naja, warum einfach, wenn es umständlich geht? ;-)

        wobei die speisekarte wohl 2 spaltig ist (essen;preis;)

        Fünfspaltig: Datum, Essen, Beschreibung, Preis, Kategorie

        Das sollte auch keine große Rolle spielen.

        Viele Grüße

        Jörg

  2. Moin,

    Wie kann ich die Excel-Dateien am besten parsen (Linux-Server), möglichst mit einer Bibliothek auf Open-Source-Basis?

    Wie wäre das http://www.paggard.com/projects/xls.reader/?

    Oder falls genug Kohle da ist(ab ~3400 Euro), http://www.golem.de/0310/27714.html;-)

    SteBu

    1. Hallo, SteBu,

      Wie kann ich die Excel-Dateien am besten parsen (Linux-Server), möglichst mit einer Bibliothek auf Open-Source-Basis?

      Wie wäre das http://www.paggard.com/projects/xls.reader/?

      schon mal nicht schlecht - kostet aber auch immerhin 67 USD

      Oder falls genug Kohle da ist(ab ~3400 Euro), http://www.golem.de/0310/27714.html;-)

      ;-)))

      Das wäre wohl auch mit Kanonen auf Spatzen geschossen: Ich will ja nicht die Funktionalität von Excel im Internet emulieren, sondern nur ein paar Daten auslesen ...

      Grüße,

      Sebastian

  3. Tag Sebastian.

    für eine Restaurantseite soll die Speisekarte sowie die Tages- und Wochenkarte im Internet angeboten werden. [...] Die Karten werden mit Excel erstellt. [...] Fürs Internet werden die Dateien vom Restaurantbetreiber regelmäßig über ein Formular auf den Server geladen.

    Vielleicht wäre dieses Excel-Makro hilfreich. Einfach beim Kunden installieren, der drückt in Excel auf eine Schaltfläche, die das Makro aufruft und heraus kommt eine HTML-Tabelle, die er dann hochlädt. Und das Parsen dieser Datei auf dem Server dürfte eigentlich keine Schwierigkeiten bereiten.

    Siechfred

    1. Hallo, Siechfred,

      Vielleicht wäre dieses Excel-Makro hilfreich. Einfach beim Kunden installieren, der drückt in Excel auf eine Schaltfläche, die das Makro aufruft und heraus kommt eine HTML-Tabelle, die er dann hochlädt. Und das Parsen dieser Datei auf dem Server dürfte eigentlich keine Schwierigkeiten bereiten.

      das wäre eine Möglichkeit - allerdings müsste der Kunde dann die Excel-Dateien immer konvertieren, was möglicherweise schon zuviel verlangt ist  ;-)  ...

      Ich hatte eher an so etwas gedacht, aber auf Open-Source-Basis ...
      Zakkis PHP Excel Parser Pro

      Grüße,

      Sebastian

      1. Moin Sebastian,

        Hallo, Siechfred,

        Vielleicht wäre dieses Excel-Makro hilfreich. Einfach beim Kunden installieren, der drückt in Excel auf eine Schaltfläche, die das Makro aufruft und heraus kommt eine HTML-Tabelle, die er dann hochlädt. Und das Parsen dieser Datei auf dem Server dürfte eigentlich keine Schwierigkeiten bereiten.

        das wäre eine Möglichkeit - allerdings müsste der Kunde dann die Excel-Dateien immer konvertieren, was möglicherweise schon zuviel verlangt ist  ;-)  ...

        wenn du dir das Beispiel anguckst und dich noch ein bisschen mit VBA beschäftigst, kannst du dem Anwender eigentlich sogar jegliche Arbeit abnehmen, er muss sich noch nichtmals um den Upload kümmern (lediglich eine Internet-Verbindung muss vorhanden sein)...

        Mal das Gerüst meiner Idee:

        Du fängst das Ereignis Workbook_BeforeSave ab, um das Makro automatisch bei jedem Speichern zu starten.

        Statt wie bei Roman Koch Application.Selection durchläufst du ActiveSheet.UsedRange, dadurch werden alle Zellen angesprochen, die im aktuellen Worksheet genutzt werden.

        In der Schleife baust du keinen String (sTable) zusammen, sondern schreibst über das FileSystemObject direkt eine HTML-Datei auf die Festplatte und überträgst diese schließlich  mit einer kleinen Routine

          
        Sub Upload()  
           Dim iFile As Integer  
           Dim sLog As String, sFile As String  
           iFile = FreeFile  
           sLog = "C:\Temp\LogIn.txt" ' irgendeine temporäre Datei auf deiner Platte  
           Open sLog For Output As #iFile  
           Print #iFile, "dein_Username"  
           Print #iFile, "dein_Password"  
           Print #iFile, "ascii"  
           Print #iFile, "put C:\Temp\deine_Datei.html"  
           Print #iFile, "quit"  
           Close  
           Shell "ftp -s:" & sLog & " dein_FTP-Server", vbHide  
        End Sub  
        
        

        Das ist eindeutig für den User einfacher zu bedienen als irgendein Uploadformular (er muss sich nämlich um nichts kümmern sondern nur seine Speisekarte erstellen und speichern) und funktioniert (ich setze das Verfahren seit ca. 18 Monaten ein), u.a. werden http://www.ferienhaus-sudfrankreich.de/preise.html und http://www.in-der-speisekammer.de/html/body_mittagstisch.html auf diese Weise erzeugt.

        Glück auf
        Dirk

        1. Hallo, Dirk,

          Mal das Gerüst meiner Idee: [...]

          Das ist eindeutig für den User einfacher zu bedienen als irgendein Uploadformular (er muss sich nämlich um nichts kümmern sondern nur seine Speisekarte erstellen und speichern) [...]

          So ein Uploadformular wäre sicherlich gerade noch zumutbar - aber wenn's ohne geht umso besser. Allerdings müsste auch eine Formatierung des HTML-Codes zur Anpassung an das Seitenlayout möglich sein.

          Danke also für die Anregung - ich werd' mir das mal ausprobieren, sofern meine absolut rudimentären VBScript-Kenntnisse ausreichen, Dein Skript zu implementieren ...

          Grüße aus Berlin,

          Sebastian

          Darf ich Dich bei evtl. Problemen zu einem späteren Zeitpunkt mal anmailen?

          1. Moin Sebastian,

            So ein Uploadformular wäre sicherlich gerade noch zumutbar - aber wenn's ohne geht umso besser. Allerdings müsste auch eine Formatierung des HTML-Codes zur Anpassung an das Seitenlayout möglich sein.

            Klar, das geht, du schreibst halt per VBA eine Textdatei, genauso wie sonst von Hand im Editor, somit ist alles möglich...

            Darf ich Dich bei evtl. Problemen zu einem späteren Zeitpunkt mal anmailen?

            Kein Problem, die Adresse ist vorname@nachname.net, wobei das natürlich passend ersetzt werden muss <g>

            Glück auf
            Dirk