
Docxtemplater
ไลบรารี Node.js ฟรีสำหรับสร้างและจัดการ Word DOCX จากเทมเพลต
ไลบรารี Node.js แบบโอเพ่นซอร์สชั้นนำที่อนุญาตให้สร้าง, แก้ไขและจัดการเอกสาร Word DOCX, XLSX แบบไดนามิกโดยใช้วิธีการเทมเพลตง่าย ๆ ผ่าน JavaScript API
Docxtemplater คืออะไร?
ในโลกดิจิทัลที่เคลื่อนที่อย่างรวดเร็วในยุคปัจจุบัน ประสิทธิภาพถือเป็นสิ่งสำคัญโดยเฉพาะเรื่องการจัดการเอกสาร ไม่ว่าจะเป็นการร่างสัญญา, สร้างรายงาน, หรือเขียนจดหมายส่วนบุคคล การมีเครื่องมือที่เชื่อถือได้เพื่อทำงานอัตโนมัติในการสร้างเอกสารสามารถช่วยประหยัดเวลาและทรัพยากรที่มีค่าได้ Docxtemplater คือตัวเลือกที่ทรงพลัง ที่ทำให้กระบวนการสร้างเอกสาร Word จากเทมเพลตง่ายขึ้น ไลบรารีนี้สนับสนุนการสร้างเอกสารแบบเทมเพลต โดยที่ช่องว่างภายในเทมเพลตของเอกสาร Word จะถูกแทนที่ด้วยข้อมูลจริงเพื่อสร้างเอกสารผลลัพธ์สุดท้าย
ในแก่นของมัน Docxtemplater เป็นไลบรารี JavaScript แบบโอเพ่นซอร์สที่ทรงพลังซึ่งช่วยให้นักพัฒนาซอฟต์แวร์สามารถสร้างและจัดการเอกสาร Word, Excel และ PowerPoint แบบไดนามิกโดยการผสานข้อมูลกับเทมเพลตที่กำหนดไว้ล่วงหน้า การใช้รูปแบบ OpenXML ทำให้ไลบรารีนี้ให้การควบคุมรายละเอียดของโครงสร้างและเนื้อหาในเอกสารของผู้ใช้อย่างละเอียด ทำให้สามารถแทรกช่องว่างที่จะแทนที่ด้วยข้อมูลจริงในระหว่างการทำงาน
Docxtemplater เป็นไลบรารีที่หลากหลายซึ่งช่วยให้นักพัฒนาซอฟต์แวร์สามารถทำงานอัตโนมัติในการสร้างเอกสารได้อย่างง่ายดาย ด้วยการใช้ประโยชน์จากพลังของเทมเพลตและการผสานข้อมูล คุณสามารถทำให้กระบวนการทำงานของเอกสารไหลลื่นและเพิ่มประสิทธิภาพอย่างมีนัยสำคัญ การใช้ไลบรารีอย่างถูกต้องนักพัฒนาซอฟต์แวร์สามารถสร้างเอกสารไดนามิกที่ตรงตามความต้องการของตนได้อย่างง่ายดาย ไม่ว่าจะเป็นการทำงานอัตโนมัติในการสร้างเอกสารหรือการปรับแต่งรายงานให้เป็นส่วนบุคคล Docxtemplater เป็นเครื่องมือที่มีคุณค่าในคลังของคุณ
วิธีการติดตั้ง Docxtemplater
เพื่อทำการติดตั้ง Docxtemplater คุณสามารถใช้ npm ซึ่งเป็นผู้จัดการแพ็กเกจสำหรับ JavaScript โปรดใช้คำสั่งต่อไปนี้เพื่อการติดตั้งที่สำเร็จ
ติดตั้ง Docxtemplater ผ่าน npm
npm install --save docxtemplater pizzipการสร้างเอกสาร Word ด้วยเทมเพลตใน Node.js
ไลบรารี Docxtemplater แบบโอเพ่นซอร์สทำให้การสร้างเอกสาร Microsoft Word DOCX ด้วยเทมเพลตเป็นเรื่องง่ายสำหรับนักพัฒนาซอฟต์แวร์ นักพัฒนาสามารถแทรกข้อมูลไดนามิกลงในเทมเพลตโดยส่งอ็อบเจกต์ที่มีคู่คีย์-ค่าเพื่อแทนที่ช่องว่างด้วยข้อมูลจริงและสร้างเอกสารผลลัพธ์สุดท้าย ตัวอย่างต่อไปนี้แสดงให้เห็นว่าผู้พัฒนาสามารถโหลดเทมเพลตที่มีอยู่และสร้างเอกสาร Word จากมันในสภาพแวดล้อม Node.js อย่างไร
วิธีสร้างเอกสาร Word จากเทมเพลตภายใน Node.js?
const fs = require('fs');
const Docxtemplater = require('docxtemplater');
// Load the template
const content = fs.readFileSync('template.docx', 'binary');
const doc = new Docxtemplater(content);
// Set data to fill placeholders
const data = {
firstName: 'John',
lastName: 'Doe'
};
// Replace placeholders with actual data
doc.setData(data);
// Render the document
doc.render();
// Save the generated document
const output = fs.writeFileSync('output.docx', doc.getZip().generate({type: 'nodebuffer'}));
console.log('Document generated successfully!');
เพิ่มฟังก์ชันและฟิลเตอร์กำหนดเองในแอป Node.js
ฟังก์ชันและฟิลเตอร์กำหนดเองในไลบรารี Docxtemplater มอบความสามารถขั้นสูงในการจัดการข้อมูลและทำการดำเนินการเฉพาะภายในเทมเพลต ซึ่งทำให้ผู้ใช้สามารถขยายการทำงานของไลบรารีให้เกินกว่าการแทนที่ช่องว่างพื้นฐาน ทำให้สามารถสร้างเนื้อหาแบบไดนามิกและประมวลผลข้อมูลที่ซับซ้อนได้ คุณสามารถกำหนดฟังก์ชันและฟิลเตอร์กำหนดเองเพื่อจัดการข้อมูลหรือทำการดำเนินการเฉพาะภายในเทมเพลตของคุณ ตัวอย่างต่อไปนี้แสดงให้เห็นว่าผู้พัฒนาสามารถนำฟังก์ชันกำหนดเองมาคำนวณราคารวมของสินค้าภายในรถเข็นและฟิลเตอร์เพื่อจัดรูปแบบค่าของสกุลเงินได้อย่างไร
วิธีคำนวณราคาสินค้าในรถเข็นโดยใช้ฟังก์ชันกำหนดเองและใช้ฟิลเตอร์เพื่อจัดรูปแบบค่าเงิน?
const fs = require('fs');
const Docxtemplater = require('docxtemplater');
// Define custom function to calculate total price
function calculateTotal(items) {
return items.reduce((total, item) => total + item.price * item.quantity, 0);
}
// Define custom filter to format currency
function formatCurrency(value) {
return '$' + value.toFixed(2); // Format as dollars with 2 decimal places
}
// Load the template
const content = fs.readFileSync('template.docx', 'binary');
const doc = new Docxtemplater(content, {
parser: {
// Define custom tag for invoking functions
getFunction: function(tag) {
if (tag === 'calculateTotal') {
return calculateTotal;
}
},
// Define custom tag for applying filters
getFilter: function(tag) {
if (tag === 'currency') {
return formatCurrency;
}
}
}
});
// Set data with shopping cart items
const data = {
items: [
{ name: 'Product 1', price: 10, quantity: 2 },
{ name: 'Product 2', price: 20, quantity: 1 },
{ name: 'Product 3', price: 15, quantity: 3 }
]
};
// Replace placeholders with actual data
doc.setData(data);
// Render the document
doc.render();
// Save the generated document
const output = fs.writeFileSync('output.docx', doc.getZip().generate({ type: 'nodebuffer' }));
console.log('Document generated successfully!');
การสนับสนุนการจัดรูปแบบขั้นสูง
ไลบรารี Docxtemplater แบบโอเพ่นซอร์สทำให้กระบวนการสร้างและจัดการเอกสาร Word ง่ายขึ้นโดยนำเสนอวิธีการแบบเทมเพลตที่ตรงไปตรงมา การสนับสนุนการจัดรูปแบบขั้นสูงในเอกสาร Word หมายถึงความสามารถในการใช้คุณลักษณะการจัดรูปแบบต่าง ๆ เช่น สไตล์ฟอนต์, สี, ขนาด, การจัดแนว และอื่น ๆ กับองค์ประกอบต่าง ๆ ภายในเอกสาร Word ซึ่งรวมถึงการจัดรูปแบบข้อความ, ตาราง, ภาพ, ย่อหน้า, การจัดรูปแบบส่วน, รายการ, จุดหัวข้อย่อยและเนื้อหาอื่น ๆ เพื่อเพิ่มความอ่านง่ายและความสวยงาม ตัวอย่างต่อไปนี้แสดงวิธีการใช้การจัดรูปแบบขั้นสูงกับส่วนหนึ่งของข้อความภายในเอกสาร
วิธีใช้การจัดรูปแบบขั้นสูงกับข้อความโดยใช้ Docxtemplater ในแอปพลิเคชัน Node.js?
// Render the document with custom parser options for rich formatting
doc.render({
parser: {
// Custom tag for interpreting HTML-like tags for rich formatting
tagToken: function(tag) {
return {
tagName: tag.substring(1),
mode: 'open'
};
},
// Apply rich formatting based on tag names
commands: {
b: function(scope, context, tag) {
return {
type: 'applyRichText',
value: { b: true }
};
},
i: function(scope, context, tag) {
return {
type: 'applyRichText',
value: { i: true }
};
},
u: function(scope, context, tag) {
return {
type: 'applyRichText',
value: { u: true }
};
},
strike: function(scope, context, tag) {
return {
type: 'applyRichText',
value: { strike: true }
};
}
}
}
});
// Save the generated document
const output = fs.writeFileSync('output.docx', doc.getZip().generate({ type: 'nodebuffer' }));
console.log('Document generated successfully!');
