Wir generieren Microsoft Word-Dokumente in PHP. Programmgesteuerte Generierung von Formulardokumenten in Word. Erstellen einer Word-Dokumentvorlage

In früheren Artikeln der Reihe „Automatisieren des Ausfüllens von Dokumenten“ habe ich darüber gesprochen, wie man die Benutzeroberfläche der Anwendung erstellt, die Validierung von Eingabedaten organisiert und Zahlen in Wörtern erhält, ohne VBA-Code zu verwenden. In diesem letzten Artikel werden wir über die Magie sprechen, alle notwendigen Werte aus einer Excel-Arbeitsmappe in ein Word-Dokument zu übertragen. Lassen Sie mich Ihnen zeigen, was am Ende passieren sollte:

Beschreibung des Mechanismus

Beginnen mit allgemeiner Überblick Ich werde genau beschreiben, wie die Daten in ein Word-Dokument übertragen werden. Zunächst benötigen wir eine Vorlage Word-Datei, enthält alle Markups, Tabellen und den Teil des Textes, der unverändert bleibt. In dieser Vorlage müssen Sie die Stellen definieren, an denen die Werte aus der Excel-Arbeitsmappe ersetzt werden; dies geschieht am bequemsten über Lesezeichen. Anschließend müssen Sie die Excel-Daten so organisieren, dass sie der Word-Vorlage entsprechen, und zu guter Letzt müssen Sie den Übertragungsvorgang selbst in VBA schreiben.

Also, das Wichtigste zuerst.

Erstellen Sie eine Word-Dokumentvorlage

Hier ist alles denkbar einfach: Wir erstellen ein normales Dokument, geben den Text ein und formatieren ihn. Im Allgemeinen erreichen wir die gewünschte Form. An den Stellen, an denen Sie Werte aus Excel ersetzen müssen, müssen Sie Lesezeichen erstellen. Dies geschieht wie folgt:

Daher müssen Sie alle Lesezeichen erstellen, d. h. alle Stellen markieren, an denen Daten aus Excel eingefügt werden. Die resultierende Datei muss über den Menüpunkt „Datei“ -> „Speichern unter...“ als „MS Word-Vorlage“ gespeichert werden.

Vorbereiten von Excel-Daten

Der Einfachheit halber habe ich beschlossen, alle Daten, die in ein Word-Dokument übertragen werden müssen, in einem separaten Arbeitsblatt namens Lesezeichen – Lesezeichen – zu platzieren. Dieses Blatt hat zwei Spalten: Die erste enthält die Namen der Lesezeichen (genau so, wie sie im Word-Dokument benannt sind), und die zweite enthält die entsprechenden zu übertragenden Werte.

Einige dieser Werte werden direkt aus dem Dateneingabeblatt abgerufen, andere aus Hilfstabellen auf dem Supportblatt. In diesem Artikel werde ich nicht die Formeln analysieren, die die erforderlichen Werte berechnen; wenn etwas unklar ist, stellen Sie Fragen in den Kommentaren.

In dieser Phase ist es wichtig, alle Lesezeichennamen korrekt anzugeben – davon hängt die Korrektheit der Datenübertragung ab.

Transferverfahren

Aber das ist das Interessanteste. Es gibt zwei Möglichkeiten, den Datenmigrationscode auszuführen:

  • Der Code läuft in einer Excel-Arbeitsmappe, die Daten werden Wert für Wert nach Word übertragen und sofort in das Dokument eingefügt.
  • Der Code wird in einem separaten Word-Dokument ausgeführt, alle Daten werden in einem Batch aus Excel übernommen.

In Bezug auf die Ausführungsgeschwindigkeit, insbesondere wenn große Mengen Lesezeichen, die zweite Option sieht viel attraktiver aus, erfordert jedoch komplexere Aktionen. Genau das habe ich verwendet.

Folgendes müssen Sie tun:

  • Erstellen Sie eine Word-Dokumentvorlage mit Makrounterstützung. Diese Vorlage enthält ausführbaren VBA-Code.
  • In der erstellten Vorlage müssen Sie ein in VBA geschriebenes Programm platzieren. Drücken Sie dazu beim Bearbeiten einer Vorlage die Tastenkombination Alt+F11 und geben Sie den Programmcode in das sich öffnende Visual Basic-Editorfenster ein.
  • Schreiben Sie in einer Excel-Arbeitsmappe Code, der den Füllvorgang aus der neu erstellten Word-Vorlage aufruft.

Ich werde den Text des Verfahrens im Artikel nicht angeben – er kann leicht in der Datei FillDocument.dotm eingesehen werden, die sich im Ordner „Template“ im Archiv mit dem Beispiel befindet.

Wie können Sie das alles nutzen, um Ihr spezielles Problem zu lösen?

Ich verstehe, dass das in Worten alles sehr einfach aussieht, aber was passiert in der Praxis? Ich empfehle Ihnen, einfach eine vorgefertigte Option zu verwenden. Laden Sie das Archiv mit dem Beispiel herunter, drücken Sie in der Excel-Arbeitsmappe die Tastenkombination Alt+F11, um den Visual Basic-Editor zu öffnen und alle meine Kommentare zum Programm zu lesen. Um das Programm an Ihre Bedürfnisse anzupassen, müssen Sie lediglich den Wert einiger Konstanten ändern; sie befinden sich ganz am Anfang des Programms. Sie können den gesamten Text des Programms frei in Ihr Projekt kopieren.

Archivstruktur

Das diesem Artikel beigefügte Archiv enthält mehrere Dateien.

Die Hauptdatei ist eine Excel-Arbeitsmappe mit dem Namen „Bestätigungen erstellen“. Diese Arbeitsmappe verfügt über 4 Arbeitsblätter, von denen nur zwei angezeigt werden: „Eingabe“ – ein Dateneingabeblatt und „Datenbank“ – ein Archiv aller eingegebenen Dokumente.

Der Ordner „Vorlagen“ enthält Word-Dokumentvorlagen. Eines davon ist eine Vorlage, die ein Programm zum Ausfüllen von Lesezeichen enthält, und das zweite ist ein Formular zum Ausfüllen. Sie können die Vorlage ohne Änderungen mit dem Programm verwenden, das auszufüllende Formular muss jedoch natürlich entsprechend Ihren Bedürfnissen neu erstellt werden.

Wie kann man das Beispiel „für sich selbst“ nacharbeiten?

  1. Bereiten Sie eine Word-Dokumentvorlage zum Ausfüllen vor. Erstellen Sie darin alle notwendigen Lesezeichen und speichern Sie sie als „MS Word-Vorlage“.
  2. Kopieren Sie die Datei FillDocument.dotm aus dem diesem Artikel beigefügten Archiv in den Ordner mit der vorbereiteten Vorlage. Diese Datei ist für das Ausfüllen der Vorlagen-Lesezeichen verantwortlich und muss nicht geändert werden.
  3. Bereiten Sie eine Excel-Arbeitsmappe für die Dateneingabe vor. Es liegt an Ihnen, zu entscheiden, ob es über eine „erweiterte“ Benutzeroberfläche verfügt und verschiedene knifflige Berechnungen durchführt. Die Hauptsache ist, dass es ein Arbeitsblatt mit einer Entsprechungstabelle zwischen dem Namen des Lesezeichens in der Word-Vorlage und dem zu ersetzenden Wert enthält.
  4. Fügen Sie den VBA-Programmcode aus der Beispieldatei in die vorbereitete Arbeitsmappe ein. Ersetzen Sie alle Konstanten entsprechend Ihrem Projekt.
  5. Auf korrekte Funktion prüfen.
  6. Nutzen Sie es aktiv!

Als ich einmal die Ergebnisse der Olympiade zusammenfasste und die Teilnehmer Briefe mit den Ergebnissen der bestandenen (oder nicht bestandenen) Fächer verschicken mussten, bemerkte ich, dass ein Mädchen saß und ihre Hände benutzte, um die Prüfungsergebnisse, die der Schülerin, einzutragen Name und andere Informationen in die Briefvorlage einfügen. Vor ihr lagen mehrere aus Excel ausgedruckte Blätter mit Namen und Noten. Kopieren-Einfügen, Strg+C – Strg+V, Übersetzung des vollständigen Namens vom Nominativ in den Genitiv, und schon ist die Arbeit mit der Hälfte des ersten von drei Datenblättern erledigt. Wie lange, glauben Sie, hätte sie dort sitzen und Daten kopieren und dann das Ergebnis überprüfen können? Ich denke, es würde ziemlich lange dauern und es würde einige Fehler geben. Aber dann musste sie noch Briefumschläge unterschreiben ... Ihre Zeit tat mir leid und ich zeigte in wenigen Minuten, wie dieser Prozess mit einfachen Mitteln automatisiert werden kann. Nach einem kleinen Ausflug war ihre Arbeit in 20 Minuten erledigt.

In dieser Lektion zeige ich Ihnen, wie Sie schnell und mit minimalem Zeitaufwand Dokumente (Briefe, Einladungen) erstellen können. In verschiedenen Sprachversionen wird dieser beschriebene Vorgang unterschiedlich bezeichnet. Auf Russisch heißt es also „Merge“ und auf Englisch „Merge“.

Ich hoffe, dass „Kettenbriefe“ von der Pensionskasse und Steuerbescheide auf die gleiche Weise entstehen :)

Werkzeuge

Zum Erstellen von Dokumenten benötigen wir OpenOffice Writer. Darin erstellen wir eine Briefvorlage. Sie benötigen außerdem OpenOffice Calc. Darin erstellen wir eine Datenbank mit den Namen und Adressen derjenigen Personen, die wir beispielsweise zu einer Party einladen möchten. MS Word und Excel können problemlos anstelle von Programmen aus dem OpenOffice-Paket verwendet werden. Die Datenbank kann problemlos in MS Access gespeichert werden. Also, fangen wir an.

Datenbankerstellung

Eine Datenbank ist nichts anderes als eine Tabelle in MS Excel oder OpenOffice Calc, in der die Daten in Spalten angeordnet sind und die erste Zeile zur Benennung der Spalten verwendet wird. Erstellen wir zum Beispiel die Spalten „vollständiger Name“, „Stadt“, „Index“, „Adresse“. Geben Sie die Daten ein und speichern Sie die Datei auf der Festplatte.



Als Datenbanken können beispielsweise auch andere Quellen genutzt werden Das Adressbuch Outlook- oder MS Access-Datenbank.

Erstellen einer Briefvorlage

Das Erstellen einer Briefvorlage ist etwas komplizierter. Da Daten aus der Tabelle (unserer Datenbank) unverändert in die Vorlage eingefügt werden, muss der Brief entsprechend verfasst werden. Wenn Ihr vollständiger Name in Ihrer Datenbank im Nominativ steht, können Sie dieses Feld wahrscheinlich nicht in der Adresse „Sehr geehrte Damen und Herren,<ФИО>! und für den Umschlag in der Zeile „An:<ФИО>" Im letzteren Fall sieht der vollständige Name etwas ungeschickt aus.

Beim Verfassen einer Briefvorlage empfehle ich, zunächst einen Brief an jemanden zu verfassen zu einer realen Person. Das kannst du selbst machen. Markieren Sie darin dann die Daten, die Sie aus der Datenbank übernehmen möchten, und ersetzen Sie diese durch die entsprechenden Felder. Bevor Sie ausgewählten Text in einem Feld ersetzen, empfehle ich, darauf zu achten, mit welchem ​​Buchstaben das Feld in der Datenbank beginnen soll (Klein- oder Großbuchstaben). Natürlich können Sie auch gleich eine Vorlage mit den Feldern erstellen, aber dann bemerken Sie möglicherweise einige Fehler, wie z. B. Inkonsistenzen in den Fällen, nicht.



Bereits in der vorgegebenen Vorlage ist klar, dass wir einen vollständigen Namen im Genitiv und ein Feld benötigen, das nur den Vor- und Zweitnamen enthält. Im ersten Feld können wir „An“ durch „Empfänger“ ersetzen und dann passt der vollständige Name im Nominativ perfekt zu uns. Beim zweiten Feld ist alles etwas komplizierter und wir müssen eine weitere Spalte in der Datenbank erstellen und diese mit den entsprechenden Daten füllen. In einer der nächsten Lektionen werde ich Ihnen erklären, wie das automatisch geht, aber wir gehen zunächst davon aus, dass wir bereits über ein solches Feld verfügen.

Um ein Feld einzufügen und die Vorlage an die Datenbank zu binden, müssen Sie die folgende Abfolge von Aktionen ausführen. Wählen Sie in OpenOffice Writer eine Datenbank aus



und klicken Sie auf „Definieren“.



Fügen Sie dann ein Feld aus der verbundenen Datenbank an der gewünschten Stelle ein. Drücken Sie dazu Strg+F2 oder wählen Sie im Menü „Einfügen“ „Felder“ und „Andere“. Im sich öffnenden Fenster wählen Sie den Reiter „Datenbanken“, wählen im Feldtyp „Seriendruckfelder“ aus, wählen das entsprechende Feld aus der Datenbank aus und klicken auf „Einfügen“. In diesem Fenster kann auch die eigentliche Datenbank ausgewählt werden.



Nachdem ein Feld eingefügt wurde, können Sie, ohne das aktuelle Fenster zu schließen, den Text auswählen, um ihn durch das nächste Feld zu ersetzen, das Feld auswählen und erneut auf „Einfügen“ klicken. Und so weiter für jedes der Felder.

Für MS Word ist die Situation etwas ähnlich und vielleicht bequemer. Nachdem Sie die Tabelle in MS Excel erstellt haben, starten Sie MS Word und gehen Sie zur Registerkarte „Verteilungen“. Auf dieser Registerkarte sehen Sie drei notwendige Schritte: „Eine Zusammenführung starten“, „Ein Dokument erstellen und Felder einfügen“ und „Abschließen“. Es gibt auch einen Zwischenschritt „Ergebnis anzeigen“, der jedoch optional ist.

Und so beginnt die Arbeit mit der Auswahl eines Dokuments. Dies können Briefe, Aufkleber oder ein normales Word-Dokument sein. Sie können sofort den Zusammenführungsassistenten starten, der Sie durch alle Phasen des Prozesses führt. Im nächsten Schritt erfolgt die Auswahl des Empfängers, also der Datenbank. Hier können Sie eine vorgefertigte Datenbank (z. B. eine im vorherigen Schritt erstellte MS Excel-Tabelle) auswählen oder erstellen neue Liste. Nach der Auswahl der Liste werden die Schaltflächen „Briefvorlagenfeld einfügen“, „Empfängerliste ändern“ usw. aktiv. Über den Dialog „Empfängerliste ändern“, der sich mit der entsprechenden Schaltfläche öffnet, können Sie aus der gesamten Liste auswählen nur die für die Zusammenführung notwendigen Datensätze.







Beim Einfügen von Feldern finde ich es praktisch, alle Felder grau hervorzuheben, indem ich auf die Schaltfläche „Zusammenführungsfelder hervorheben“ klicke. Andernfalls können bei vielen solcher Felder diese im Text verloren gehen.

Und so ist die Vorlage fertig.

Briefe generieren

Der letzte Schritt ist das Generieren von Briefen. Wählen Sie dazu in OpenOffice im Menü „Extras“ den Eintrag „Seriendruck-Assistent...“ und gehen Sie alle vorgeschlagenen Schritte zum Zusammenführen unserer Vorlage mit der Datenbank durch.





Im Dialogfeld sehen wir, dass wir von den 8 vorgeschlagenen Punkten einige Punkte nicht ausführen müssen. Damit haben wir das Dokument bereits erstellt und müssen es nicht mehr bearbeiten, auch den Adressblock haben wir bereits eingefügt. Aber lasst uns die Dinge in Ordnung bringen.

Wählen Sie zunächst aus, dass wir Briefe auf Basis des aktuellen Dokuments erstellen und klicken Sie unten im Fenster auf „Weiter“. Der zweite Punkt besteht darin, zu entscheiden, ob wir diesen Papierbrief oder diese E-Mail erhalten möchten. Damit der Brief in einer Datei gespeichert werden kann, sollten Sie die erste auswählen. Weiter klicken". Im dritten Punkt werden wir aufgefordert, einen Adressblock zu erstellen. Da wir ihn jedoch manuell erstellt haben, deaktivieren wir alle Kontrollkästchen und fahren mit dem nächsten Schritt fort. Hier werden wir aufgefordert, eine Anfrage einzugeben, aber wir haben bereits eine, also klicken wir auf „Weiter“. Der sechste Punkt besteht darin, das Dokument zu bearbeiten, sich das Dokument mit den aus der Datenbank eingefügten Feldern anzusehen und gegebenenfalls einige Felder auszuschließen.



Schritt 7 fordert Sie auf, jede der Dateien zu bearbeiten, die durch das Verbinden der Vorlage mit der Datenbank erstellt wurden. Und schließlich können Sie im letzten, 8. Schritt auswählen, was mit den erhaltenen Dokumenten geschehen soll. Sie können es speichern, ausdrucken oder per E-Mail versenden. In diesem Fall können Sie alle Dokumente in einer Datei oder jedes Dokument einzeln speichern.

In MS Word endet der Zusammenführungsvorgang durch Klicken auf die Schaltfläche „Suchen und zusammenführen“.



Aus dem Dropdown-Menü ist ersichtlich, dass alle Briefe ausgedruckt und per E-Mail versendet werden können, es ist jedoch nicht ersichtlich, dass alle Briefe in einer Datei gespeichert werden können. Zum Speichern müssen Sie den ersten Punkt auswählen – „Einzelne Dokumente ändern“. Dadurch wird ein neues Dokument geöffnet, in dem sich jeder neue Buchstabe befindet neue Seite, und hier können Sie diese Datei speichern.

Abschluss

Und so haben Sie in dieser Lektion gelernt, wie Sie mit dem Zusammenführungstool Dokumente basierend auf einer Vorlage erstellen. Schreiben wir kurz die Abfolge der Aktionen auf:

  1. Es ist notwendig, in einem Tabellenprozessor eine Datenbank zu erstellen, aus der Daten zum Ausfüllen der Felder entnommen werden.
  2. Sie müssen eine Briefvorlage erstellen.
  3. Führen Sie die Zusammenführung durch und speichern Sie das Ergebnis.

A, Nachnamen in der Spalte B und Berufe in der Rubrik C.

2. Erstellen Sie ein Word-Dokument (.doc oder .docx)


(A), (B) Und (C).

(A), (B) Und (C) (A)- Name, (B)- Familienname, Nachname, (C)- Beruf.

Einstellungen Programme.

3. Wählen Sie Pfade für Dateien und Ordner aus


Wählen

4. Geben Sie die Blätter und Zeilen der erforderlichen Daten an


Datenblätter in Excel-Dateien

Datenzeilen in Excel-Dateien Datenblätter in Excel-Dateien

1 .

Wenn Sie möchten, dass alle Blätter und/oder Zeilen Ihrer Excel-Datei mit Daten an der Erstellung des Dokuments beteiligt werden, klicken Sie auf die entsprechende Schaltfläche mit der Aufschrift rechts Zahlen(Die Inschrift ändert sich in Alle).

5. Legen Sie eine Vorlage für die Benennung neuer Word-Dateien fest


Legen Sie das Benennungsmuster für neue Word-Dateien fest:

Neue Namensvorlage für Word-Dateien- Dies ist eine Vorlage für die Namen neuer Dokumente (Word-Dateien), die vom Programm generiert werden. Hier enthält das Namensmuster die Spaltennamen der Excel-Datei, umgeben von geschweiften Klammern: (A) Und (B). Beim Erstellen eines neuen Dokuments ersetzt das Programm alles (A) Und (B) die entsprechenden Zellwerte aus der Excel-Datei – dies wird der Name des neuen Dokuments (Word-Datei) sein.

Auf der Registerkarte können Sie Ihre Rahmenzeichen festlegen Einstellungen Programme.

6. Klicken Sie auf „Generieren“


Drück den Knopf Generieren und der Fortschritt wird auf dem Bildschirm angezeigt. Es werden genau so viele Dokumente (Word-Dateien) erstellt, wie Zeilen der Excel-Datei an der Erstellung beteiligt sind.

7. Alles


Alle Dokumente (Word-Dateien) wurden erstellt und befinden sich im angegebenen Ordner Ordner zum Speichern der neuen Word-Dateien. Alle:)

Exwog- Berichtsgenerator von Excel nach Word mithilfe einer Vorlage

Kostenloser Word-Dateigenerator unter Verwendung einer Vorlage (Word-Datei) basierend auf Excel-Dateidaten

Funktioniert unter Mac OS, Windows und Linux

Ermöglicht Ihnen, die Namen neu generierter Word-Dateien festzulegen

Ermöglicht Ihnen, Blätter und Zeilen der erforderlichen Daten anzugeben

Ermöglicht Ihnen, umgebende Zeichen für Excel-Spaltennamen anzugeben

Einfach zu verwenden

Speichern Sie Ihre Daten im Excel-Format (.xls und .xlsx) und generieren Sie mit wenigen Klicks Word-Dateien (.doc und .docx) :)


Wie es funktioniert?

Schauen Sie sich Ihre Excel-Datei an


In diesem Beispiel enthält die Excel-Datei Informationen über Kunden. Jede Zeile entspricht einem bestimmten Kunden. Namen werden in einer Spalte angeordnet A, Nachnamen in der Spalte B und Berufe in der Rubrik C.

Klicke zum Zeigen

Erstellen Sie ein Word-Dokument (.doc oder .docx)


Klicke zum Zeigen

Erstellen Sie eine „Vorlage“ (Word-Datei) zum Generieren neuer Dokumente (Word-Dateien). Hier enthält der „Vorlagen“-Text die Namen der Spalten der Excel-Datei, umgeben von geschweiften Klammern: (A), (B) Und (C).

Das Programm generiert neue Dokumente gemäß der „Vorlage“ und ersetzt alle (A), (B) Und (C) entsprechende Zellwerte aus der Excel-Datei: (A)- Name, (B)- Familienname, Nachname, (C)- Beruf.

Sie können Ihre Rahmenzeichen auch auf der Registerkarte festlegen Einstellungen Programme.

Wählen Sie Pfade für Dateien und Ordner aus


Wählen Sie Pfade für Dateien und Ordner aus (Schaltflächen mit der Bezeichnung Wählen). Im Programm geben Sie folgende Pfade an:

Excel-Datei mit Daten (*.xls, *.xlsx)- Dies ist der Pfad zu Ihrer Excel-Datei mit Daten (Kundeninformationen);

Word-Vorlagendatei (*.doc, *.docx)- Dies ist der Pfad zu Ihrer „Vorlage“ (der im vorherigen Schritt erstellten Word-Datei);

Ordner zum Speichern der neuen Word-Dateien- Dies ist der Pfad zu dem Ordner, in dem das Programm neu generierte Dokumente speichert.

Klicke zum Zeigen

Geben Sie die Blätter und Zeilen der erforderlichen Daten an


Klicke zum Zeigen

Geben Sie die Anzahl der Blätter und Zeilen Ihrer Excel-Datei mit Daten (Kundeninformationen) an, für die Sie Dokumente generieren möchten:

Datenblätter in Excel-Dateien- Anzahl der Blätter Ihrer Excel-Datei, die an der Erstellung neuer Dokumente beteiligt sind;

Datenzeilen in Excel-Dateien- Zeilennummern der Blätter (Blätter angegeben in Datenblätter in Excel-Dateien) Ihrer Excel-Datei, die an der Generierung neuer Dokumente beteiligt ist. Basierend auf den Daten jeder angegebenen Zeile wird ein separates Dokument (Word-Datei) erstellt.

Die Nummerierung der Blätter und Zeilen im Programm beginnt mit 1 .