1. Các sản phẩm
  2.   Xử lý văn bản
  3.   Ruby
  4.   Ruby-Docx-Templater
 
  

Tạo các tệp Word động từ mẫu qua API Ruby miễn phí

Thư viện Ruby mã nguồn mở hàng đầu được thiết kế để tạo các tài liệu Microsoft Word (.docx) động từ các mẫu đã được thiết kế sẵn.

Ruby-Docx-Templater là gì?

Việc tạo các tài liệu Microsoft Word (.docx) động từ một ứng dụng Ruby có thể là một nhiệm vụ phức tạp hơn mong đợi. Bạn có thể cần tạo báo cáo, hoá đơn hoặc thư mà người không kỹ thuật đã thiết kế. Mặc dù có nhiều giải pháp, chúng thường yêu cầu các phụ thuộc nặng như LibreOffice hoặc cài đặt Word cục bộ. Ruby-Docx-Templater, một gem nhẹ, mang đến một cách tiếp cận khác. Nó cho phép người dùng sử dụng một tệp .docx tiêu chuẩn làm mẫu, thao tác toàn bộ trong bộ nhớ để chèn dữ liệu của họ. Điều này làm cho nó trở thành lựa chọn nhanh, an toàn và dễ triển khai cho bất kỳ nhà phát triển Ruby nào.

Về cơ bản, thư viện Ruby-Docx-Templater là một công cụ tạo mẫu đặc biệt cho các tệp .docx. Đây là một gem Ruby nhẹ, mạnh mẽ, được thiết kế để tạo các tài liệu Microsoft Word (.docx) động từ các mẫu đã được thiết kế sẵn. Nó hoạt động bằng cách sử dụng một hệ thống tag đơn giản bên trong một tài liệu Word tiêu chuẩn. Bạn tạo một mẫu trong Word, đặt các tag đặc biệt ở nơi muốn nội dung động xuất hiện, sau đó để gem thay thế các tag đó bằng dữ liệu thực từ ứng dụng Ruby của bạn. Việc xử lý dựa trên bộ nhớ, hỗ trợ cấu trúc bảng phức tạp và duy trì định dạng khiến nó trở thành lựa chọn lý tưởng cho tự động hoá tài liệu doanh nghiệp.

Previous Next

Bắt đầu với Ruby-Docx-Templater

Cách khuyến nghị để cài đặt Ruby-Docx-Templater là sử dụng RubyGems. Vui lòng dùng lệnh sau để cài đặt một cách suôn sẻ.

Cài đặt Ruby-Docx-Templater qua RubyGems

 gem install ruby-docx-templater 

Cài đặt Ruby-Docx-Templater qua GitHub

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

Tạo tệp Word Docx từ mẫu bằng Ruby

Tính năng cơ bản nhất của Ruby-Docx-Templater là thay thế văn bản đơn giản. Bạn có thể đặt các placeholder ở bất kỳ vị trí nào trong tài liệu Word, và thư viện sẽ thay thế chúng bằng các giá trị thực. Điều đặc biệt của cách tiếp cận này là giữ nguyên định dạng. Nếu bạn làm cho $COMPANY_NAME$ in đậm và màu đỏ trong mẫu, nó sẽ vẫn in đậm và màu đỏ trong đầu ra. Điều này cho phép các nhà thiết kế có toàn quyền kiểm soát giao diện tài liệu. Trong mẫu Word, bạn định nghĩa các khóa bằng cú pháp $KEY$. Dấu đô la đóng vai trò là dấu phân cách, làm rõ nơi cần thực hiện thay thế.

Tạo tệp Word Docx bằng tệp mẫu qua 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')

Hỗ trợ vòng lặp bảng đa hàng

Một trong những tính năng mạnh mẽ nhất là khả năng tạo các bảng động với nhiều hàng. Điều này cần thiết cho việc tạo danh sách chi tiết trong hoá đơn, danh mục sản phẩm hoặc bất kỳ báo cáo nào có dữ liệu lặp lại. Bạn định nghĩa một vùng lặp trong bảng và thư viện sẽ sao chép mọi thứ giữa các dấu hiệu này cho mỗi mục trong mảng dữ liệu của bạn. Bạn có thể định dạng từng ô riêng biệt trong Word. Ví dụ, bạn có thể căn phải số, làm cho tiêu đề in đậm, hoặc áp dụng các phông chữ cụ thể. Tất cả định dạng sẽ được giữ nguyên trong các hàng được tạo.

Cách tạo báo cáo sản phẩm với nhiều hàng trong định dạng Docx qua thư viện 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')

Xử lý dựa trên bộ nhớ

Thư viện Ruby-Docx-Templater mã nguồn mở rất dễ sử dụng và hỗ trợ xử lý dựa trên bộ nhớ trong các ứng dụng Ruby. Tất cả việc thao tác tài liệu diễn ra trong bộ nhớ, có nghĩa là dữ liệu nhạy cảm của bạn không bao giờ chạm tới hệ thống tệp trong quá trình tạo mẫu. Điều này rất quan trọng đối với các ứng dụng xử lý thông tin bí mật như hồ sơ y tế, tài liệu tài chính hoặc dữ liệu cá nhân.

Làm việc với Word XML

Một khía cạnh độc đáo của Ruby-Docx-Templater là đôi khi bạn cần chỉnh sửa thủ công XML nền của tài liệu Word. Word thường chèn các markup định dạng có thể tách các khóa mẫu của bạn, làm gián đoạn quá trình thay thế. Khi bạn gõ $CUSTOMER_NAME$ trong Word, nó có thể hiển thị đúng trên màn hình, nhưng XML nền có thể trông như sau.

 Tiếng Việt