PHP-Variablen in Word-Template

Hallo,

ich habe ein vorgegebenes Word-Dokument in das an bestimmten Stellen Werte aus einer Datenbank ueber PHP eingefuegt werden wollen. Das sieht dann z.B. so aus:

Vorname:
Nachname:

Hinter die beiden Felder moechte ich dann per PHP aus einer Datenbank (MySQL) die entsprechenden Werte setzen. Ich moechte nicht das komplette Dokument erstellen, sondern wirklich nur die Werte einfuegen.

Gibt es dazu fertige Methoden (Klassen) mit denen man das machen kann? Ich waere fuer jede Hilfe sehr dankbar.

Cheers,
Michael

Hallo Michael,

ich empfehle Dir, die Daten direkt von mySQL in Word einzufügen.

Systemvoraussetzungen:

  • Installierter myODBC-Treiber für den Zugriff auf die mySQL-DB
  • Installiertes MS-Query (ist auf der Office-CD)

Das Vorgehen im Groben:

  • Erstellen einer ODBC-Datenquelle über die Systemsteuerung
  • Erstellen eines Seriendruck-Dokuments in Word
  • Als Datenquelle wählst Du „Datenquelle öffnen“ und wählst die
    ODBC-Quelle aus. Mit MS-Query wählst Du die gewünschten Felder
    aus bzw. definierst Filter

Viele Grüße
Thomas

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Hallo Michael,

am einfachsten ist es ehrlich mit ADODB und VBA Daten aus der Datenbank zu holen.
Habe im Internet folgende Seite entdeckt und bin der Meinung, dass etwas für dich dabei ist.
Schau einfach selber nach.
http://www.ems-hitech.com/mysqlutils

Gruß
Manfred

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Hi,

das Problem bei den vorgestellten Lösungen ist, dass nach wie vor eine gewisse Datenbank-Kenntnis vorausgesetzt wird. Die von mir angestrebte Variante soll dazu dienen, dass der Anwender ein komplett fertiges Word-Dokument bekommt, in das er selbst nichts mehr einfügen muss. Also auch nicht über VBA oder ODBC.
Ich möchte, dass der Anwender auf Knopfdruck einen Bericht (Word-Dok) erstellen kann, den er nur noch ausdrucken muss.

Danke für die Hilfe,
Michael

Hi, wenns dir nur ums ausdrucken geht erstell doch einfach ne ne entsprechend formatierte HTML Seite die der Endanwender dann ausdrucken kann.

MFG Thomas

Hallo,

leider geht es nicht nur ums Drucken. Der User soll nach wie vor die Möglichkeit haben etwas zu ändern, es soll aber nicht erforderlich sein.

Zudem soll der Benutzer auf einfache Weise eigene Templates anlegen können. Da ich nicht erwarte, daß jeder Benutzer auch HTML kann wäre es am besten, wenn die Templates als Word-Dokument gespeichert werden können.

Wie dem auch sei habe ich jetzt eine für mich akzeptable Lösung gefunden, sie lautet Rich Text Format (RTF). Zugegeben, es ist kein richtiges Word-Dokument, lässt sich aber dennoch mit Word öffnen und verursacht keine Probleme, wenn das Template mit der gleichen Word-Version erstellt wurde.

Für alle interessierten daher hier mein Ansatz:

// Word-Header erzeugen
header( „Content-type: application/msword“ );
header( "Content-Disposition: inline, filename=$filename);

// das Template zum Lesen öffnen
$fp = fopen ( $filename, „r“ );

// den Inhalt in einer Variablen speichern
$output = fread( $fp, filesize( $filename ) );

// die Datei schliessen
fclose ( $fp );

// Platzhalter durch Daten ersetzen
$output = str_replace( „>“, strtoupper( $name ), $output );

// Ausgabe des RTF-Dokumentes an Browser
echo $output;

Danke an alle, die mir geholfen haben.

Viele Grüße,
Michael