Andreas: Import/Export von Excel Dateien über PHP möglich?

Hallo!
Nur mal so rein theoretisch:
Kann ich irgendwie Excel Dateien(.xls!)  aus einer MySQL DB exportieren? Also aus einer Internet-Anwendung, die mit Apache/Unix läuft. Man kann je rel. einfach Daten per PHP direkt als CSV exportieren, oder "von Hand" so eine Datei erstellen. Genau so ist es ja möglich eine html Datei zu verwenden.
Ist es möglich xls Datein ohen die ganze M$ Umgebung zu generieren, oder ist es auf der anderen Seite möglich Daten aus einer xls Datei einzulesen und in der DB zu speichern? Ich weiß, mit aus Excel exportierter CSV alles kein Problem, nur diese ganze IMPORT-EXPORT Sachen sind für die meisten DAUs ein Problem, und leider ist Excel nunmal _der_ Standard in fast allen Unternehmen.
Was gibt es da für Möglichkeiten?

Oder auf der anderen Seite, was gibt es für Möglichkeiten, wenn ich z.B. in php einen Report erstellt habe, und den dann als html zum Download anbieten will, gibt es da andere Möglichkeiten, als ein Script zu schreiben, welches zu Fuß den Report nochmal in html Code in eine Datei schreibt? Die Datei ist ja im Prinzip schon vorhanden, halt nur dynamisch, wie macht man sowas am besten?

Grüsse
  Andreas

  1. Hallo!

    Moin!

    Kann ich irgendwie Excel Dateien(.xls!)  aus einer MySQL DB exportieren?
    Was gibt es da für Möglichkeiten?

    Für Perl gibts da, wenn ich in letzter Zeit richtig gelesen habe, ein Modul für genau diese Aufgabe.

    Allerdings denke ich, dein Problem könnte sich etwas reduzieren dadurch, daß Excel Dateien immer nur öffnen kann, aber nicht importieren. Und CSV-Dateien werden (vermutlich) dahingehend erkannt, daß man den Import-Dialog ziemlich schnell einfach weiterklicken kann, um dann zu einer Excel-Version zu kommen. Ich würde da also noch keine grauen Haare wachsen lassen - auch DAUs müssen lernen können.

    - Sven Rautenberg

    1. Hallo!
      Mist, irgendwie hatte ich schon alles geschrieben, aber anscheinend nicht abgeschickt :-(
      OK, jedenfalls habe ich mir überlegt, dass erstmal csv für einfache Daten reicht, und htm für eine formatierte Datei, beide kan man ja einfach in Excel ohne Dialog öffnen!
      Nur wioe ich das mit der htm machen soll ist mir noch  nicht ganz klar, da es sich ja um Daten aus der DB handelt, muß ich da ein Script schreiben, welches Zeile für Zeile die html Datei generiert, doer geht das auch anders?

      Grüsse
        Andreas

    2. auch DAUs müssen lernen können.

      Ich halte diese Einstellung für grundsätzlich falsch. Ein Benutzer will etwas benutzen und nicht jedesmal vorher ein Semester studieren. Insofern sollten wir ihm gute - und das bedeutet einfache - Lösungen anbieten, die ihn nicht vor das nächste Problem stellen.

      fastix

      1. Hallo,

        auch DAUs müssen lernen können.

        Ich halte diese Einstellung für grundsätzlich falsch. Ein Benutzer will etwas benutzen und nicht jedesmal vorher ein Semester studieren. Insofern sollten wir ihm gute - und das bedeutet einfache - Lösungen anbieten, die ihn nicht vor das nächste Problem stellen.

        Es ist eine durchaus löbliche EInstellung, Anwendern das Leben so leicht, wie nur möglich zu machen. Allerdings sollte das nicht heißen, daß Anwender nicht die Werkzeuge, die sie benutzen auch kennen und bedienen können. Und ein Computer, und die darauf laufenden Anwendungen, sind nun mal Werkzeuge, noch dazu z.T. recht komplexe.
        Und wie ich von einem Mitarbeiter erwarten kann, bereit zu sein, die Bedienung einer Maschine zu erlernen, so kann ich auch erwarten, daß er bereit ist, die BEdienung eines Programmes zu erlernen. Antürlich muß der Arbeitgeber auch bereit sein, so etwas zu ermöglichen, wenn es das Tätigkeitsprofil erfordert, ein bestimmtes Programm zu benutzen.
        Aber so einfach zu sagen "da kenn ich mich nicht aus, das soll doch jemand anders für mich mundgerecht aufbereiten", das ist IMHO nicht in Ordnung.

        Und muß nicht jeder, der ein Auto benutzen will, vorher auch lernen, es zumindest halbwegs bedienen zu können?

        Grüße
          Klaus

        1. Hi!
          Also ich sehe das genau so wie fastix! Klar wäre es besser wenn man das von Benutzern verlangen könnte, aber wenn man das mal aus der Sicht eines größeren Unternehmens sieht ist es IMHO teurer alle Anwender für bestimmt Anwendungen oder Bereiche zu schulen, als direkt eine Lösung zu schaffen, die die Anwendeer mit ihren vorhandenen Office und Internet Kenntnissen bewältigen können!
          Ich finde auch dass sich gute Software gerade dadurch auszeichent, dass sie besonders leicht zu bedienen ist, also intuitiv, und mit vorhandene Anwendungen ohne Probleme "komuniziern" kann.

          Grüsse
            Andreas

          1. Hallo,

            Klar wäre es besser wenn man das von Benutzern verlangen könnte, aber wenn man das mal aus der Sicht eines größeren Unternehmens sieht ist es IMHO teurer alle Anwender für bestimmt Anwendungen oder Bereiche zu schulen, als direkt eine Lösung zu schaffen, ...

            Was irgendwann auch dazu führen könnte, daß zweiteres teurer ist als ersteres;-)
            Abgesehen davon sollte jedes Unternehmen, allein schon aus Eigeninteresse, ein gewisses Grundmaß an Kenntnissen voraussetzen bzw. die Erlenung derselben gewährleisten...

            die die Anwendeer mit ihren vorhandenen Office und Internet Kenntnissen bewältigen können!

            ... weil ein Unternehmen aus sehr unterschiedlichen Gründen Mitarbeiter beschäftigt, wobei EDV-Kenntnisse IMHO nur eine untergeordnete Rolle spielen sollten.

            Du kannst einfach 'vorhandene Kenntnisse' nicht so eindeutig qualifizieren, daß es möglich ist, es jedem recht zu machen.
            Dafür gibt es allein schon zu viele Systeme und Programme für jede Aufgabe.

            Ich finde auch dass sich gute Software gerade dadurch auszeichent, dass sie besonders leicht zu bedienen ist, also intuitiv, und mit vorhandene Anwendungen ohne Probleme "komuniziern" kann.

            Das bestreite ich ja nicht, aber irgendwo ist dann auch ein Punkt, wo es ohne Mitarbeiterkenntnisse nicht mehr geht.

            Was mich so gestört hat am Posting von fastix, daß er meinte, es sei _grundsätzlich_ falsch, von einem Mitarbeiter zu verlangen, zu lernen, wie etwas geht.
            Etwas Lernbereitschaft kann ich wohl von jedem erwarten, und den Umgang mit einer Software zu erlernen beddeutet noch lange nicht, daß jeder ein abgeschlossenes Informatikstudium machen muß.

            Grüße
              Klaus

      2. Moin!!!

        auch DAUs müssen lernen können.

        Ich halte diese Einstellung für grundsätzlich falsch. Ein Benutzer will etwas benutzen und nicht jedesmal vorher ein Semester studieren. Insofern sollten wir ihm gute - und das bedeutet einfache - Lösungen anbieten, die ihn nicht vor das nächste Problem stellen.

        Kennst du den Importdialog von Excel? Wenn ja, dann weißt du, daß der wirklich simpel zu verstehen ist. Manchmal muß man sich eben mit ein paar grundsätzlichen Dingen vertraut machen. Und genau das meinte ich: Man kann den Benutzer nicht vor allen Dingen schützen. Schließlich benutzt er einen Computer - manche Dinge erfordern etwas mehr Verständnis für die Materie als nur "klicken". Wer Excel benutzt, sollte sich mit Excel auskennen, um das Programm überhaupt sinnvoll benutzen zu können. Und jetzt geht das Kennenlernen halt bis zum Importdialog.

        Ansonsten hast du natürlich recht: Software sollte, was Bedienungsaspekte angeht, so komfortabel wie möglich sein. Aber manche Dinge erfordern eben etwas Fachwissen, um das man nicht herumkommt.

        - Sven Rautenberg

  2. Hallo,

    Nur mal so rein theoretisch:
    Kann ich irgendwie Excel Dateien(.xls!)  aus einer MySQL DB exportieren? Also aus einer Internet-Anwendung, die mit Apache/Unix läuft. Man kann je rel. einfach Daten per PHP direkt als CSV exportieren, oder "von Hand" so eine Datei erstellen. Genau so ist es ja möglich eine html Datei zu verwenden.
    Ist es möglich xls Datein ohen die ganze M$ Umgebung zu generieren, oder ist es auf der anderen Seite möglich Daten aus einer xls Datei einzulesen und in der DB zu speichern? Ich weiß, mit aus Excel exportierter CSV alles kein Problem, nur diese ganze IMPORT-EXPORT Sachen sind für die meisten DAUs ein Problem, und leider ist Excel nunmal _der_ Standard in fast allen Unternehmen.
    Was gibt es da für Möglichkeiten?

    Wie schon gesagt wurde, gibt es unter Perl zwei Module, welche Exceldateien schrieben und lesen können. Die funktionieren AFAIK auch unter Linux.

    Aber ich hab' mal etwas ziemlich verrrücktes gemacht, um Auswertungen in Excel zu realisieren.
    Es gibt in Excel die Möglichkeit, Daten über Webabfragen zu importieren. Das dumme ist nur, daß die Webabfragen, einmal erstellt nicht mehr geändert werden konnten (war noch Excel 97, weiß nicht ob das inzwischen anders ist). Aber egal, jedenfalls wurden Auswertetemplates entwickelt, mit Webabfrage, Diagrammen und dem ganzen Pipapo, was so benötigt war.
    Dabei wurden die URL's der Webabfrage mit einer festen Länge (Was weiß ich, sagen wir mal 255 Zeichen) verwendet, wobei für das erreichen der Länge halt ein Platzhalter gewählt wurde.
    Beispiel:
    http://name.des.servers/cgi-bin/abfrage.pl?tabelle=abc&search=wasauchimmer&placeholder=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

    Die Abfrage hatte natürlich schon ein gültiges Resultat, damit man damit die Auswertung gestalten konnte.

    Diese Dateien wurden dann auf dem Webserver abgelegt, und konnten dann über ein CGI-Script (in Perl) mit zusätzlichen Parametern abgefragt werden.
    Das Script hat dann die entsprechende Exceldatei geladen, dabei nach dem URL der Webabfrage gesucht, und diesen dann durch einen neuen ersetzt, also z.B.
    http://name.des.servers/cgi-bin/abfrage.pl?tabelle=PERSONEN&search=GRUPPE%204711&placeholder=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
    (wobei es auf die gleiche Länge des Strings angekommen ist, damit das alles sicher noch eine gültige Excel-Datei blieb)

    Diesen, dynamisch modifizierte, Datei wurde zum Client gesendet, der dann das ganze in Excel ansehen konnte. Im Autostart-Makro stand dann auch gleich das 'Aktualisiere Webabfrage' drin, damit die richtigen Daten angezeigt wurden.
    Ach ja, und der eingetragene URL lieferte natürlioch eine einfache HTML-Tabelle, ohne den ganzen Formatierungsschnickschnack.

    Wie gesagt, eine ziemlich verrückte Lösung, aber wenn einem nichts anderes übrig bleibt (Der Webserver lief unter VMS).

    Grüße
      Klaus

    1. Hi!

      Nicht schlecht! Werde ich für die Zukunft in Betracht ziehen. Aber erstmal reichen glaub ich einfache csv und htm Dateien, aber sehr gut dass es (wenn gewünscht...) möglich  ist!

      Vielen Dank!

      Grüsse
        Andreas