1. Produkte
  2.   Textverarbeitung
  3.   Ruby
  4.   Ruby-Docx-Templater
 
  

Dynamische Word-Dateien aus Vorlage über kostenlose Ruby-API erstellen

Führende Open-Source Ruby-Bibliothek, die entwickelt wurde, um dynamische Microsoft Word (.docx)-Dokumente aus vorgefertigten Vorlagen zu erstellen.

Was ist Ruby-Docx-Templater?

Das Generieren dynamischer Microsoft Word-Dokumente (.docx) aus einer Ruby‑Anwendung kann überraschend komplex sein. Möglicherweise müssen Sie Berichte, Rechnungen oder Briefe erstellen, die von nicht‑technischen Benutzern entworfen wurden. Während es viele Lösungen gibt, erfordern diese häufig schwere Abhängigkeiten wie LibreOffice oder lokale Word‑Installationen. Hier kommt Ruby-Docx-Templater ins Spiel, ein leichtes Gem, das einen anderen Ansatz verfolgt. Es erlaubt Nutzern, eine Standard‑.docx‑Datei als Vorlage zu verwenden und sie vollständig im Speicher zu manipulieren, um ihre Daten einzufügen. Das macht es zu einer schnellen, sicheren und deploymentsfreundlichen Option für jeden Ruby‑Entwickler.

Im Kern ist die Ruby-Docx-Templater-Bibliothek eine Templating‑Engine speziell für .docx‑Dateien. Es ist ein leichtes, leistungsstarkes Ruby‑Gem, das entwickelt wurde, um dynamische Microsoft Word (.docx)-Dokumente aus vorgefertigten Vorlagen zu erzeugen. Es funktioniert, indem es ein einfaches tagbasiertes System innerhalb eines Standard‑Word‑Dokuments verwendet. Sie erstellen eine Vorlage in Word, platzieren spezielle Tags dort, wo dynamischer Inhalt erscheinen soll, und lassen das Gem diese Tags durch echte Daten aus Ihrer Ruby‑Anwendung ersetzen. Die speicherbasierte Verarbeitung, die Unterstützung komplexer Tabellenstrukturen und die Erhaltung des Formats machen es ideal für die Automatisierung von Geschäftsdokumenten.

Previous Next

Erste Schritte mit Ruby-Docx-Templater

Der empfohlene Weg, Ruby-Docx-Templater zu installieren, ist die Nutzung von RubyGems. Bitte verwenden Sie den folgenden Befehl für eine reibungslose Installation.

Ruby-Docx-Templater via RubyGems installieren

 gem install ruby-docx-templater 

Ruby-Docx-Templater via GitHub installieren

 git clone https://github.com/jawspeak/ruby-docx-templater.git 
You can also download it directly from GitHub.

Word-Docx-Datei aus Vorlage via Ruby erstellen

Die grundlegendste Funktion von Ruby-Docx-Templater ist die einfache Textsubstitution. Sie können Platzhalter überall in Ihrem Word-Dokument platzieren, und die Bibliothek ersetzt sie durch echte Werte. Das Schöne an diesem Ansatz ist, dass die Formatierung erhalten bleibt. Wenn Sie $COMPANY_NAME$ in Ihrer Vorlage fett und rot formatieren, bleibt es im Ergebnis ebenfalls fett und rot. Dies gibt Designern die volle Kontrolle über das Aussehen des Dokuments. In Ihrer Word-Vorlage definieren Sie Schlüssel mit der $KEY$-Syntax. Die Dollarzeichen dienen als Trennzeichen und machen deutlich, wo Ersetzungen erfolgen sollen.

Eine Word-Docx-Datei mit Vorlagendatei via Ruby erstellen?

require 'docx_templater'

# Load your template file
doc = DocxTemplater::TemplateProcessor.new('invoice_template.docx')

# Define your data as a hash
data = {
  'COMPANY_NAME' => 'Acme Corporation',
  'INVOICE_NUMBER' => 'INV-2024-001',
  'INVOICE_DATE' => '2024-11-04',
  'CLIENT_NAME' => 'John Smith',
  'TOTAL_AMOUNT' => '$1,250.00'
}

# Render the document with your data
doc.render(data)

# Save the output
doc.save('output_invoice.docx')

Unterstützung für Mehrzeilen-Tabellenschleifen

Eine der leistungsfähigsten Funktionen ist die Möglichkeit, dynamische Tabellen mit mehreren Zeilen zu erzeugen. Das ist essenziell für die Erstellung von Auflistungen in Rechnungen, Produktkatalogen oder jedem Bericht mit wiederholenden Daten. Sie definieren einen Schleifenbereich in Ihrer Tabelle und die Bibliothek dupliziert alles zwischen diesen Markern für jedes Element in Ihrem Daten‑Array. Sie können jede Zelle individuell in Word formatieren. Beispielsweise könnten Sie Zahlen rechtsbündig ausrichten, Kopfzeilen fett darstellen oder bestimmte Schriftarten anwenden. Alle Formatierungen bleiben in den erzeugten Zeilen erhalten.

Wie erstellt man einen Produktbericht mit mehreren Zeilen im Docx-Format über die Ruby-Bibliothek?

require 'docx_templater'

doc = DocxTemplater::TemplateProcessor.new('product_report.docx')

# Define items as an array of hashes
data = {
  'REPORT_TITLE' => 'Monthly Sales Report',
  'REPORT_DATE' => 'November 2024',
  'ITEMS_LIST' => [
    {
      'PRODUCT_NAME' => 'Laptop Pro 15"',
      'QUANTITY' => '5',
      'UNIT_PRICE' => '$1,200.00',
      'TOTAL' => '$6,000.00'
    },
    {
      'PRODUCT_NAME' => 'Wireless Mouse',
      'QUANTITY' => '12',
      'UNIT_PRICE' => '$25.00',
      'TOTAL' => '$300.00'
    },
    {
      'PRODUCT_NAME' => 'USB-C Cable',
      'QUANTITY' => '20',
      'UNIT_PRICE' => '$15.00',
      'TOTAL' => '$300.00'
    }
  ]
}

doc.render(data)
doc.save('output_sales_report.docx')

Speicherbasierte Verarbeitung

Die Open‑Source Ruby-Docx-Templater-Bibliothek ist sehr einfach zu handhaben und unterstützt speicherbasierte Verarbeitung in Ruby‑Anwendungen. Die gesamte Dokumentenmanipulation erfolgt im Speicher, was bedeutet, dass Ihre sensiblen Daten während des Templating‑Prozesses nie das Dateisystem berühren. Das ist entscheidend für Anwendungen, die mit vertraulichen Informationen wie medizinischen Unterlagen, Finanzdokumenten oder personenbezogenen Daten arbeiten.

Arbeiten mit Word-XML

Ein einzigartiger Aspekt von Ruby-Docx-Templater ist, dass Sie manchmal das zugrunde liegende XML Ihres Word-Dokuments manuell bearbeiten müssen. Word fügt häufig Formatierungs‑Markup ein, das Ihre Vorlagen‑Schlüssel aufteilen kann und den Ersetzungsprozess unterbricht. Wenn Sie $CUSTOMER_NAME$ in Word eingeben, erscheint es auf dem Bildschirm korrekt, aber das zugrunde liegende XML könnte folgendermaßen aussehen.

 Deutsch