สร้างไฟล์ 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 เป็น gem Ruby แบบเบาที่มีประสิทธิภาพออกแบบมาเพื่อสร้างเอกสาร Microsoft Word (.docx) แบบไดนามิกจากเทมเพลตที่ออกแบบล่วงหน้า มันทำงานโดยใช้ระบบแท็กแบบง่ายภายในเอกสาร Word มาตรฐาน คุณสร้างเทมเพลตใน Word, ใส่แท็กพิเศษในตำแหน่งที่ต้องการให้เนื้อหาไดนามิกปรากฏ แล้วให้ gem แทนที่แท็กเหล่านั้นด้วยข้อมูลจริงจากแอป Ruby ของคุณ การประมวลผลบนหน่วยความจำ, การสนับสนุนโครงสร้างตารางที่ซับซ้อน, และการรักษารูปแบบทำให้มันเหมาะสำหรับการอัตโนมัติเอกสารทางธุรกิจ

Previous Next

เริ่มต้นใช้งาน 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 คือการแทนที่ข้อความอย่างง่าย คุณสามารถวางตัวแทนใด ๆ ในเอกสาร 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 พื้นฐานอาจมีลักษณะเช่นนี้

 ไทย