Створюйте динамічні Word файли з шаблону за допомогою безкоштовного Ruby API
Ведуча відкрита бібліотека Ruby, створена для генерування динамічних Microsoft Word (.docx) документів з попередньо підготовлених шаблонів.
Що таке Ruby-Docx-Templater?
Генерування динамічних Microsoft Word документів (.docx) з Ruby‑додатка може бути надзвичайно складним завданням. Можливо, вам потрібно створювати звіти, рахунки‑фактури або листи, які розроблені нетехнічними користувачами. Хоча існує багато рішень, вони часто вимагають великих залежностей, таких як LibreOffice або локальні установки Word. На допомогу приходить Ruby-Docx-Templater, легкий gem, який підходить інакше. Він дозволяє користувачам використовувати стандартний .docx файл як шаблон, повністю маніпулюючи ним у пам'яті для внесення даних. Це швидке, безпечне та готове до розгортання рішення для будь‑якого Ruby розробника.
У своїй суті бібліотека Ruby-Docx-Templater – це шаблонізуючий движок, спеціально розроблений для .docx файлів. Це легка, потужна Ruby gem, створена для створення динамічних Microsoft Word (.docx) документів з попередньо підготовлених шаблонів. Вона працює, використовуючи просту систему тегів у стандартному Word документі. Ви створюєте шаблон у Word, розміщуєте спеціальні теги там, де повинний з'явитися динамічний вміст, а потім gem замінює ці теги реальними даними з вашого Ruby застосунку. Обробка в пам'яті, підтримка складних структур таблиць і збереження форматування роблять її ідеальною для автоматизації ділових документів.
Початок роботи з Ruby-Docx-Templater
Рекомендований спосіб встановлення Ruby-Docx-Templater – використання RubyGems. Будь ласка, використайте наступну команду для плавного встановлення.
Встановлення Ruby-Docx-Templater через RubyGems
gem install ruby-docx-templater Встановлення Ruby-Docx-Templater через GitHub
git clone https://github.com/jawspeak/ruby-docx-templater.git You can also download it directly from GitHub.Створіть Word Docx файл з шаблону за допомогою Ruby
Найпростіша функція Ruby-Docx-Templater – просте замінення тексту. Ви можете розміщувати placeholders (місцезаповнювачі) у будь‑якому місці вашого Word документа, і бібліотека замінить їх на реальні значення. Краса цього підходу в тому, що зберігається форматування. Якщо ви зробите $COMPANY_NAME$ жирним і червоним у вашому шаблоні, то воно залишиться жирним і червоним у вихідному файлі. Це дає дизайнерам повний контроль над виглядом документа. У вашому шаблоні Word ви визначаєте ключі, використовуючи синтаксис $KEY$. Долар-символи діють як роздільники, чітко вказуючи, де повинна відбуватися підстановка.
Створити Word Docx файл, використовуючи файл шаблону, за допомогою 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')
Підтримка циклів таблиці з кількома рядками
Одна з найпотужніших можливостей – створення динамічних таблиць з кількома рядками. Це необхідно для створення деталізованих списків у рахунках, каталогах товарів або будь‑якому звіті з повторюваними даними. Ви визначаєте область циклу в таблиці, і бібліотека дублює все між цими маркерами для кожного елементу у вашому масиві даних. Ви можете форматувати кожну клітинку окремо у Word. Наприклад, можна вирівняти числа праворуч, зробити заголовки жирними або застосувати певні шрифти. Усе форматування зберігається у згенерованих рядках.
Як створити звіт про продукт із кількома рядками у форматі Docx за допомогою 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')
Обробка в пам'яті
Відкрита бібліотека Ruby-Docx-Templater дуже легка у використанні та підтримує обробку в пам'яті всередині Ruby застосунків. Уся маніпуляція документом відбувається в пам'яті, що означає, що ваші конфіденційні дані ніколи не торкаються файлової системи під час процесу шаблонізації. Це критично важливо для застосунків, що працюють з конфіденційною інформацією, такою як медичні записи, фінансові документи чи особисті дані.
Робота з Word XML
Унікальна риса Ruby-Docx-Templater – іноді доводиться вручну редагувати базовий XML вашого Word документа. Word часто вставляє розмітку форматування, яка може розділяти ваші ключі шаблону, порушуючи процес підстановки. Коли ви вводите $CUSTOMER_NAME$ у Word, він може виглядати правильно на екрані, але базовий XML може виглядати так.