無料 Ruby API でテンプレートから動的な Word ファイルを作成
事前にデザインされたテンプレートから動的な Microsoft Word(.docx)ドキュメントを作成するために設計された、トップクラスのオープンソース Ruby ライブラリ。
Ruby-Docx-Templater とは何ですか?
Ruby アプリケーションから動的な Microsoft Word ドキュメント(.docx)を生成することは、驚くほど複雑な作業になることがあります。非技術的なユーザーが設計したレポート、請求書、または手紙を生成する必要があるかもしれません。多くのソリューションが存在しますが、LibreOffice やローカルの Word インストールなどの重い依存関係が必要になることがよくあります。そこで登場するのが、軽量な gem である Ruby-Docx-Templater です。標準の .docx ファイルをテンプレートとして使用し、データを注入するためにメモリ内で完全に操作できるようにします。これにより、あらゆる Ruby 開発者にとって高速で安全、デプロイしやすいオプションとなります。
Ruby-Docx-Templater ライブラリの核心は、.docx ファイル専用のテンプレートエンジンです。事前にデザインされたテンプレートから動的な Microsoft Word(.docx)ドキュメントを作成するよう設計された軽量で強力な Ruby gem です。標準の Word ドキュメント内でシンプルなタグベースのシステムを使用して動作します。Word でテンプレートを作成し、動的コンテンツを表示したい場所に特別なタグを配置し、gem がそれらのタグを Ruby アプリケーションからの実際のデータに置き換えます。メモリベースの処理、複雑なテーブル構造のサポート、フォーマットの保持により、ビジネス文書の自動化に最適です。
Ruby-Docx-Templater の開始方法
Ruby-Docx-Templater のインストールには RubyGems の使用が推奨されます。スムーズなインストールのために以下のコマンドをご利用ください。
RubyGems で Ruby-Docx-Templater をインストール
gem install ruby-docx-templater GitHub で Ruby-Docx-Templater をインストール
git clone https://github.com/jawspeak/ruby-docx-templater.git You can also download it directly from GitHub.Ruby でテンプレートから Word Docx ファイルを作成
Ruby-Docx-Templater の最も基本的な機能はシンプルなテキスト置換です。Word ドキュメント内の任意の場所にプレースホルダーを配置でき、ライブラリが実際の値に置き換えます。このアプローチの美しさは、フォーマットが保持されることです。テンプレートで $COMPANY_NAME$ を太字かつ赤色にした場合、出力でも太字かつ赤色のままです。これによりデザイナーはドキュメントの外観を完全にコントロールできます。Word テンプレート内で $KEY$ 構文を使用してキーを定義します。ドル記号は区切り文字として機能し、置換が行われる場所が明確になります。
Ruby でテンプレートファイルを使用して Word Docx ファイルを作成しますか?
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 で各セルを個別にフォーマットできます。例えば、数値を右揃えにしたり、ヘッダーを太字にしたり、特定のフォントを適用したりできます。すべてのフォーマットは生成された行に保持されます。
Ruby ライブラリで複数行の Docx フォーマットで製品レポートを作成する方法は?
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 のユニークな点は、時折 Word ドキュメントの基礎となる XML を手動で編集する必要があることです。Word はしばしばフォーマット用のマークアップを挿入し、テンプレートキーが分割され、置換プロセスが壊れることがあります。Word で $CUSTOMER_NAME$ と入力すると、画面上では正しく表示されるかもしれませんが、基礎となる XML は次のようになる場合があります。