Word Dokument füllen

  • Hallo zusammen,

    ich bin ein ziemlicher Anfänger und komme gerade nicht mehr weiter, daher hoffe ich mir kann jemand helfen. Ich habe mit HTML eine Seite erstellt auf der sich verschiedene Textfelder befinden. Den Inhalt dieser Textfelder habe ich mit JavaScript in einem Array gespeichert. Soweit funktioniert alles wie gewollt. Nun würde ich gerne das, was in die Textfelder geschrieben wurde in ein Word Dokument übertragen, allerdings finde ich nicht heraus wie das funktionieren soll. Ich hätte gerne, dass es überhaupt übertragen wird, mein Endziel wäre aber, dass quasi eine Tabelle in Word erscheint, wo jeweils z.B. in der linken Spalte Name, Adresse, Telefonnummer usw. steht und in der rechten Spalte das jeweils eingetragene aus dem Textfeld. Sollte beispielsweise das Feld mit der Adresse nicht ausgefüllt werden, will ich dass diese Zeile in der Tabelle in Word gar nicht erscheint. Ich bin für alle Tipps dankbar.


    MFG Olaf

  • Also wenn ich dich richtig verstehe willst du mit javascript ein word datei erstellen?

    Geht glaube ich nicht .Mit php kann man txt datein erstellen und vieleicht noch andere Datein ,aber javascript ist da etwas faul.

    Oder ich verstehe nur wiieder Bahnhof das kann auch sein

  • Hi,


    ja, client-seitig kann man keine Dateien erstellen, das muss auf dem Webserver passieren, also z.B. mit PHP. Diese Datei kann man dann als Response zurück an den Browser schicken, und kann dann runter geladen werden.


    Um explizit Word Dateien erstellen zu können empfiehlt es sich eine fertige PHP library einzusetzen, wie z.B. PHPWord.

    Ob und wie man hiermit dann Tabellen in Word erstellen kann (eine CSV bzw. Excel Datei fände ich hier passender), muss man aus der Doku der library entnehmen.


    Aber mal anders gefragt, was ist denn das Ziel, was soll mit der Word Datei gemacht werden? Vielleicht ist hier eine Datenbank sinnvoller?


    Gib mal weitere Infos hierzu.

  • Erstmal danke für deine Antwort.


    Grundsätzlich geht es hier um einen Fragebogen, der ausgefüllt wird und das Ziel ist es, dass der Benutzer am Ende seine Antworten in einer ausgewerteten Übersicht bekommt. Also prinzipiell wäre auch PDF möglich, aber es wäre gut wenn derjenige die Übersicht im nachhinein auch noch einmal bearbeiten kann, daher Word. Ich hatte nun gerade noch die Idee, eine neue HTML Seite als Endübersicht zu generieren, das wäre aber nur dann hilfreich, wenn man diese dann in ein Word Dokument umwandeln kann. Ansonsten muss ich mich wohl noch in PHP einarbeiten, hab damit jedoch bisher 0 Erfahrungen

  • PHP einarbeiten -> https://www.PHP-Kurs.com (die Schwesterseite vom HTML-Seminar :))


    Was viele nicht bedenken - falls man ein Word-Dokument mit Platzhaltern hat, dieses als RTF abspeichern und dann kann man das mit PHP öffnen und die Platzhalter einfach durch Suchen und Ersetzen füllen. Auch eine Möglichkeit ;)

  • Was viele nicht bedenken - falls man ein Word-Dokument mit Platzhaltern hat, dieses als RTF abspeichern und dann kann man das mit PHP öffnen und die Platzhalter einfach durch Suchen und Ersetzen füllen. Auch eine Möglichkeit ;)

    Ich hab das jetzt versucht mit file_get_contents zu öffnen und mit str_replace die Platzhalter zu ersetzen, aber wie kann ich das jetzt noch als docx abspeichern?

  • Ich muss mich noch einmal an euch wenden: ich habe es jetzt hinbekommen das Dokument zu bearbeiten was mir jetzt noch fehlt ist die Verbindung zu den im Array gespeicherten Werten. Ich habe in JavaScript einen zweidimensionalen Array. Diesen möchte ich im php file benutzen, um das Word Dokument zu füllen. Jetzt habe ich zu Versuchszwecken getestet, ob ich einen Array einfach mal ausgeben kann, klappt aber nicht

    JS:

    var info = ['info1', 'info2', 'info3'];

    var sendData = function() {

    $.post('C:\xampp\htdocs\sendTest\phptest.php', {

    data: info

    }, function(response) {

    console.log(response);

    });

    }

    sendData();


    PHP:

    <?php

    if(isset($_POST)){

    if(isset($_POST['data'])){

    $songData = $_POST['data'];

    print_r($songData);

    }}

    ?>

    Zeigt allerdings nichts an. Was mache ich falsch?

  • Du kannst kein Array als POST-Parameter übergeben. Kodiere es in JSON:

    Code
    $.post('C:\xampp\htdocs\sendTest\phptest.php', {
        data: JSON.stringify(info)
        }, function(response) {
            console.log(response);
    });

    Und in PHP entsprechend wieder auspacken:

    Code
    $songData = json_decode($_POST['data'], TRUE);
    print_r($songData);

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!