Creează fișiere Word dinamice din șablon prin API Ruby gratuit
Bibliotecă Ruby open source de top concepută pentru a crea documente Microsoft Word (.docx) dinamice din șabloane predefinite.
Ce este Ruby-Docx-Templater?
Generarea de documente dinamice Microsoft Word (.docx) dintr-o aplicație Ruby poate fi o sarcină surprinzător de complexă. Poate fi necesar să generezi rapoarte, facturi sau scrisori create de utilizatori non‑tehnici. Deși există multe soluții, acestea necesită adesea dependențe grele, cum ar fi LibreOffice sau instalări locale de Word. Aici intervine Ruby-Docx-Templater, un gem ușor care adoptă o abordare diferită. Permite utilizatorilor să folosească un fișier .docx standard ca șablon, manipulându-l complet în memorie pentru a injecta datele. Astfel, este o opțiune rapidă, sigură și prietenoasă cu implementarea pentru orice dezvoltator Ruby.
În esență, biblioteca Ruby-Docx-Templater este un motor de șabloane specific pentru fișiere .docx. Este un gem Ruby ușor, puternic, conceput pentru a crea documente dinamice Microsoft Word (.docx) din șabloane predefinite. Funcționează printr-un sistem simplu bazat pe etichete în interiorul unui document Word standard. Creezi un șablon în Word, plasezi etichete speciale acolo unde vrei să apară conținut dinamic, apoi gem-ul înlocuiește aceste etichete cu date reale din aplicația ta Ruby. Procesarea în memorie, suportul pentru structuri de tabel complexe și păstrarea formatării îl fac ideal pentru automatizarea documentelor de business.
Începe cu Ruby-Docx-Templater
Calea recomandată pentru instalarea Ruby-Docx-Templater este prin RubyGems. Folosește comanda de mai jos pentru o instalare fără probleme.
Instalează Ruby-Docx-Templater prin RubyGems
gem install ruby-docx-templater Instalează Ruby-Docx-Templater prin GitHub
git clone https://github.com/jawspeak/ruby-docx-templater.git You can also download it directly from GitHub.Creează fișier Word Docx din șablon cu Ruby
Funcționalitatea de bază a Ruby-Docx-Templater este înlocuirea simplă a textului. Poți plasa placeholder‑uri oriunde în documentul Word, iar biblioteca le va înlocui cu valori reale. Frumusețea acestei abordări este că păstrează formatarea. Dacă în șablon setezi $COMPANY_NAME$ în bold și roșu, va rămâne bold și roșu în rezultatul final. Acest lucru oferă designerilor control total asupra aspectului documentului. În șablonul Word definești cheile utilizând sintaxa $KEY$. Semnul dolar acționează ca delimitator, clarificând unde trebuie să apară substituțiile.
Creezi un fișier Word Docx utilizând un fișier șablon cu Ruby?
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')
Suport pentru bucle în tabele cu mai multe rânduri
Una dintre cele mai puternice funcții este generarea de tabele dinamice cu mai multe rânduri. Este esențială pentru crearea listelor detaliate în facturi, cataloage de produse sau orice raport cu date repetitive. Definești o zonă de buclă în tabel, iar biblioteca duplicatează tot ce se află între acești marcatori pentru fiecare element din matricea ta de date. Poți formata fiecare celulă individual în Word. De exemplu, poți alinia numerele la dreapta, poți face anteturile în bold sau poți aplica fonturi specifice. Toată formatarea este păstrată în rândurile generate.
Cum să creezi un raport de produs cu mai multe rânduri în formatele Docx prin bibliotecă Ruby?
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')
Procesare în memorie
Biblioteca open source Ruby-Docx-Templater este foarte ușor de utilizat și suportă procesarea în memorie în aplicațiile Ruby. Toată manipularea documentului are loc în memorie, ceea ce înseamnă că datele sensibile nu ating niciodată sistemul de fișiere în timpul procesului de templating. Este crucial pentru aplicațiile ce manipulează informații confidențiale, cum ar fi dosarele medicale, documentele financiare sau datele personale.
Lucrul cu Word XML
Un aspect unic al Ruby-Docx-Templater este că uneori trebuie să editezi manual XML‑ul de bază al documentului Word. Word introduce adesea markup de formatare care poate fragmenta cheile din șablon, întrerupând procesul de substituție. Când tastezi $CUSTOMER_NAME$ în Word, poate arăta corect pe ecran, dar XML‑ul de bază poate arăta așa.