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