JavaScript-API zur Erstellung dynamischer Word-Dokumente
Open-Source-JavaScript-Bibliothek zur Erstellung dynamischer Word-Dokumente mit Node.js und browserbasierten Anwendungen.
Was ist Docx-templates?
Docx-Templates ist eine Open-Source-JavaScript-Bibliothek, die Softwareentwicklern ermöglicht, dynamische Microsoft Word (.docx)-Dokumente mithilfe vordefinierter Vorlagen zu erzeugen. Anstatt Word-Dokumente manuell programmgesteuert zu erstellen, können Entwickler Vorlagen in Microsoft Word entwerfen und dynamische Daten über eingebettete Befehle einfügen. Diese Bibliothek funktioniert sowohl in Node.js- als auch in Browser-Umgebungen und ist damit äußerst vielseitig für moderne Web- und Serveranwendungen. Sie verarbeitet DOCX-Dateien, indem sie deren interne XML-Struktur analysiert und Vorlagenbefehle zur Laufzeit durch tatsächliche Daten ersetzt.
Die Docx-Templates-Bibliothek ist ein leistungsstarkes, Open-Source-Tool, das sowohl für Node.js- als auch für Browser-Umgebungen entwickelt wurde. Der Hauptvorteil der Bibliothek liegt in der Trennung von Design und Logik. Nicht‑technische Benutzer können das Layout und das Styling in Word entwerfen, während Entwickler sich darauf konzentrieren, die Daten einzuspeisen. Sie unterstützt komplexe Logik wie Schleifen, bedingte Formatierung und sogar die Ausführung von JavaScript‑Snippets direkt im Dokument. Das macht sie zu einer idealen Lösung für Entwickler, die hochqualitative Berichte erstellen müssen, ohne sich mit XML oder proprietären Design‑Tools herumschlagen zu müssen.
Erste Schritte mit Docx-templates
Der empfohlene Weg, die Docx-templates-Bibliothek zu installieren, ist über npm. Bitte verwenden Sie den folgenden Befehl für eine reibungslose Installation
Installieren Sie Docx-Templates über NPM
$ npm install docx-templates Installieren Sie Docx-Templates über Yarn/strong>
$ yarn add docx-templates Vorlagenbasierte Dokumentenerstellung über die JS-API
Die Open-Source-Bibliothek Docx-Templates ermöglicht es Softwareentwicklern, Dokumente in Word zu entwerfen und Daten dynamisch mit einfachen Befehlen einzufügen. Dieser Ansatz trennt Präsentation von Logik, sodass Vorlagen leicht zu verwalten und zu aktualisieren sind, ohne den Code zu ändern. Sie können direkt auf Eigenschaften Ihres Datenobjekts zugreifen oder sogar einfache Ausdrücke ausführen. Zum Beispiel würde Ihre Vorlage zum Einfügen eines vollständigen Namens so aussehen: {firstName} {surname}. Die Bibliothek wertet den Code aus und ersetzt ihn nahtlos.
Wie erstellt man dynamisch Word-Dokumente in JavaScript-Anwendungen?
import createReport from 'docx-templates';
import fs from 'fs';
const template = fs.readFileSync('template.docx');
const report = await createReport({
template,
data: { name: 'John', surname: 'Doe' },
});
fs.writeFileSync('output.docx', report);
Dynamisches Einfügen von Bildern über JavaScript
Über Text hinaus kann die Open-Source-Bibliothek Docx-Templates Bilder in Echtzeit einfügen. Dazu gehören lokale Dateien, Bilder von einer URL oder sogar programmgenerierte QR-Codes. Sie können die Größe des Bildes und seine Platzierung steuern. Diese Funktion ist ein Wendepunkt für die Erstellung von Ausweischildern, Produktkatalogen oder Berichten, die dynamische Diagramme und visuelle Belege erfordern. Hier ist ein einfaches Beispiel, das zeigt, wie man ein Bild in ein Word-Dokument über die JavaScript-API einfügt.
Wie fügt man Bilder in Word-Dokumente zur Laufzeit über die JavaScript-API ein?
const buffer = await createReport({
template,
data: {
userAvatar: async () => {
const resp = await fetch('https://example.com/photo.png');
return { width: 3, height: 3, data: await resp.arrayBuffer(), extension: '.png' };
}
},
});
// In Word: {IMAGE userAvatar()}
Leistungsstarke Schleifen (FOR/END-FOR)
Der Umgang mit Datenlisten ist nahtlos mit dem FOR‑Befehl. Diese Funktion ermöglicht es, über Arrays zu iterieren, um Tabellenzeilen, Listen oder sogar ganze Abschnitte eines Dokuments zu erzeugen. Die Docx‑Templates‑Bibliothek enthält Unterstützung für verschachtelte Schleifen, sodass Sie komplexe hierarchische Datenstrukturen darstellen können, z. B. eine Liste von Abteilungen mit ihren jeweiligen Mitarbeitern, und dabei das ursprüngliche Word‑Design beibehalten. Das folgende Codebeispiel zeigt, wie das erreicht wird.
Wie wendet man erweiterte Schleifen in JavaScript-Anwendungen an?
const buffer = await createReport({
template,
data: {
projects: [
{ name: 'SEO Optimization', status: 'Completed' },
{ name: 'API Integration', status: 'In Progress' }
]
},
});
/* In Word:
{FOR project IN projects}
Project: {project.name} - Status: {project.status}
{END-FOR}
*/
Benutzerdefinierter JavaScript-Kontext (EXEC)
Eines der fortschrittlichsten Features der Docx‑Templates‑Bibliothek ist die Möglichkeit, beliebige JavaScript‑Snippets mit dem EXEC‑Befehl (oder !) auszuführen. Durch die Bereitstellung eines additionalJsContext können Sie benutzerdefinierte Hilfsfunktionen im Template verfügbar machen. Das ermöglicht dem Template, Berechnungen durchzuführen, Datumsangaben zu formatieren oder Zeichenketten intern zu manipulieren, ohne jedes Datenstück in Ihrer Hauptanwendungslogik vorverarbeiten zu müssen.