WORD mit PHP oeffnen!?!?

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • WORD mit PHP oeffnen!?!?

    Hi,

    habe hier gerade das "PHP - Grundlagen und Loesungen" von Joerg Krause vor mir und ein Problem mit einem abgedruckten Script! (LOL, hier ist so etwa jedes 4. Script FALSCH, aber leider ist dieses das 1., dass ich nicht alleine hinbekomme !!!)

    OK, hier erst mal das Scipt:

    <HTML>
    <BODY>
    <H1>COM-Beispiele</H1>
    <?
    $word = new COM("word.application") or die ("Not available");
    echo "Word, Version {$word->Version} geladen<BR>";
    $word->Visible=1;
    $word->Documents->Add();
    $word->Selection->TypeText("TESt TEXT!!!");
    $word->Documents[1]->SaveAs("Test");
    $word->Quit();
    ?>
    </BODY>
    </HTML>

    So, das funktioniert bis auf die beiden Zeilen:

    $word->Selection->TypeText("TESt TEXT!!!");
    $word->Documents[1]->SaveAs("Test");

    Ich bekomme bei Beiden Zeilen immer folgende Fehlermeldung:

    Warning: Invoke() failed: Type mismatch.

    Es ist zum heulen, vor allem, da das wirklich interessant waere!!! WAS IST DARAN FALSCH??? Da ich null Ahnung von diesen (ich glaube) COM Befehlen habe, benoetige ich dringend Eure Hilfe. Ach ja, falls noch jemand weiss, wo ich eine Referenz dieser COM-Befehle bekomme, egal ob online oder als Buch (am Besten auf englisch), dann sagt doch mal Bescheid!

    danke schon mal im Voraus,

    Duncan

  • #2
    $excel=new COM("excel.application") or die("Cannot start excel for you");
    print "Loaded excel version ($excel->Version)\n";
    $excel->visible =1;
    $excel->Workbooks->Add("http://Server.de/php/pep/bin/excel.txt");
    $excel->Workbooks[1]->SaveAs("c:\pep.xls");

    Hier ein Script welches bei mir erofolgreich Interpretiert wird, solange ich es Lokal von meiner PHP.exe interpretieren lasse. Wenn ich das Script vom Server Interpretieren lasse, bekomme ich folgende Meldung.

    Warning: Invalid ProgID: Ungültiger Klassenstring in D:\www\php\pep\ma_export.php on line 40
    Cannot start word for you

    Aber eigendlich ist Dein Script für Word richtig.

    Kommentar


    • #3
      Hi,

      danke erst mal fuer Deine Antwort, aber Dein Skript funktioniert leider auch bei mir nicht.
      Immer ab der Zeile mit dem "Add("")" gibt es invoke() Fehler; echt merkwuerdig.

      Das seltsame ist auch, dass alles funktioniert, word oeffnen, neues Dokument anlegen und schliessen, sobald es jedoch an das Einfuegen von Text in das Dokument geht, oder das "SaveAs", dann reagiert PHP sofort mit invoke() Fehlermeldung...

      Vielleicht muss ich erst irgendwelche wilden Dinge bei meinem Server freischalten??? ...aber lokal geoeffnet duerfte das doch eigentlich kein Problem sein ... da hat doch dann der Server nix mehr mit zu tun, oder?

      Na ja, mein grosser Nachteil ist wohl, dass ich noch absolut neu auf dem PHP & Server Markt bin, so dass ich mir selber nicht zu helfen weiss

      ....trotzdem danke,
      werde noch mal weiter dran tuefteln...

      so long,

      Duncan

      Kommentar


      • #4
        He he he,

        aehm, muss mich leider hier mal entschuldigen ...

        habe es gerade (durch Zufall) aus Versehen mal wieder ausprobiert ... und siehe da, es klappt!!!! SPRING, HUEPF!!

        Na ja, was war also vorher anders, als jetzt?
        ...bevor mich jetzt hier alle mit Steine bewerfen...
        nein, nein, es lag nicht daran, dass ich gar kein Windows installiert habe ... kommt dem ganzen aber schon recht nahe LOL

        ...hatte bis vor kurzem nicht Office 2000 drauf! Tja, und Office 98 oder 97 oder was auch immer das war!?! ...ist sich wohl zu fein fuer solche Parameter!!

        Trotzdem danke fuer Deine Hilfe... LOL, tut mir echt Leid ... normalerweise passiert mir so was echt nicht... LOL

        in diesem Sinne,

        (ein vor Freude huepfender) Duncan McLord

        Kommentar


        • #5
          Wir Word jetzt auf dem Client oder auf dem Server geöffnet? *dummguck*
          mein Sport: mein Frühstück: meine Arbeit:

          Sämtliche Code-Schnipsel sind im Allgemeinen nicht getestet und werden ohne Gewähr auf Fehlerfreiheit und Korrektheit gepostet.

          Kommentar


          • #6
            Tja,

            also ich mache das alles leider nur ueber den localhost, d.h. virtueller Server mit Xitami ... werde jedoch mal testen, wie das klappt, wenn man ein ECHTES Netzwerk aufbaut und sich ein Client einloggt ... ob das dann auch klappt... aber (so rein vom logischen her) denke ich doch mal, dass das klappen sollte, ausser natuerlich, dass irgendwelche Dinge auf dem Client Rechner untersagt sind...

            mal sehen, melde mich mal, wenn ich das ausprobiert habe...

            waere eigentlich kein Problem, wenn man das ins Netz stellen koennte ... fuer Lau, versteht sich, dann wuerde man ja sofort sehen, ob das klappt!

            ....gibt es so was wie einen tripod Server, der PHP unterstuetzt?

            in diesem Sinne,

            Duncan

            Kommentar


            • #7
              Hi

              Ich befürchte das Du bei dem Versuch scheitern wirst, denn gegen jede Logik versucht php über COM auf dem Server Word zu starten! Das ist für ein Serverseitig interpretierte Scripsprache wie PHP eigendlich auch logisch. Nur brauch das kein Mensch!!!!

              Kommentar


              • #8
                Uh, oh ... yup,

                gar nicht dran gedacht ... war so in Euphorie versunken, LOL, na ja, wie dem auch sei ... trotzdem Recht interessant, was sich alles mit PHP so anstellen laesst!!

                ...aber laesst es sich nicht so ummodeln, dass der Befehl an den Client gesendet wird ... vielleicht via JS?? ...na ja, mal sehen...

                in diesem Sinne,

                Duncan

                Kommentar


                • #9
                  In JavaScript läßt sich imho keine COM-Schnittstelle realisieren, ich hab aber von Lösungen in Java gehört.
                  Dazu muß aber leider auf dem Client nicht ein JRE sondern die (nicht gerade billige) Java-Application installiert sein.

                  Wenn's ne einfachere Lösung gibt: immer her damit!
                  mein Sport: mein Frühstück: meine Arbeit:

                  Sämtliche Code-Schnipsel sind im Allgemeinen nicht getestet und werden ohne Gewähr auf Fehlerfreiheit und Korrektheit gepostet.

                  Kommentar


                  • #10
                    Ich wollte Daten in Excel Importieren. Da ich über COM auf das oben beschriebene Problem gestossen bin, habe ich es wie folgt umgangen:

                    1. Ich schreibe meine Daten mit Tabulator (\t) getrennt in eine .txt Datei.

                    2. Nach dem erfolgreichen schreiben, erstelle ich einen Link auf diese Datei.

                    Ergebniss: Wenn der Benutzer jetzt den Link öffnet, Importiert Excel automatisch die .txt Datei ohne das der Benutzer etwas merkt.

                    Kommentar


                    • #11
                      Netter Umweg. Aber was passiert mit den Formatierungen?

                      Genau, gibt's nicht!
                      mein Sport: mein Frühstück: meine Arbeit:

                      Sämtliche Code-Schnipsel sind im Allgemeinen nicht getestet und werden ohne Gewähr auf Fehlerfreiheit und Korrektheit gepostet.

                      Kommentar


                      • #12
                        Richtig! Es gibt keine Formatierungen. Aber für meine Zwecke ist es ausreichend.

                        Tipp: Word kann HTML Formatierungen interpretieren. Vieleicht kannst du die ja benutzen.

                        Kommentar


                        • #13
                          Klar, wenn ich dem Client irgendwie sagen kann, er soll das HTML-Dokument mit Word statt mit dem IE öfnnen ... aber dazu brauch ich dann wieder COM, oder?
                          mein Sport: mein Frühstück: meine Arbeit:

                          Sämtliche Code-Schnipsel sind im Allgemeinen nicht getestet und werden ohne Gewähr auf Fehlerfreiheit und Korrektheit gepostet.

                          Kommentar


                          • #14
                            Wenn du die html Datei mit .doc enden lässt öffnet word das Dokument mit Word und erkennt automatisch das es html ist. Keine saubere Lösung aber es geht.

                            Für Privat ist es denke ich akzeptabel. Für einen Kunden ?!?

                            Kommentar


                            • #15
                              hm,

                              nun ja, aber kommt dann nicht erst wieder dieser "Datei Oeffen/Speichern"-Dialog?
                              ...denn dann waere es schon wieder langweilig, weil es ja "im Hintergrund" passieren soll.

                              ...waere bloss Scheisse, wenn dann ein Linux-Client auftaucht

                              apropos, wie sieht hier bei Euch eigentlich die Verteilung der OS aus? Windows, Linux oder beides? (...ich streiche Novell DOS mal spontan aus der Liste )

                              ach ja, wenn jedoch nicht dieser "Oeffnen/Speichern" Dialog erscheinen wuerde, so koennte man doch dann mit VB-Script einige interessante Dinge anstellen, oder?
                              ...das ist doch of ein Weg, wie diese Sch***-Viren funtionieren, oder?

                              so long,

                              Duncan

                              Kommentar

                              Lädt...
                              X