1. 製品
  2.   ワードプロセッシング
  3.   Ruby
  4.   Ruby-Docx-Templater
 
  

無料 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 アプリケーションからの実際のデータに置き換えます。メモリベースの処理、複雑なテーブル構造のサポート、フォーマットの保持により、ビジネス文書の自動化に最適です。

Previous Next

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 は次のようになる場合があります。

 日本