Docxtemplater

 
 

ไลบรารี Node.js ฟรีสำหรับสร้างและจัดการ Word DOCX จากเทมเพลต

ไลบรารี Node.js แบบโอเพ่นซอร์สชั้นนำที่อนุญาตให้สร้าง, แก้ไขและจัดการเอกสาร Word DOCX, XLSX แบบไดนามิกโดยใช้วิธีการเทมเพลตง่าย ๆ ผ่าน JavaScript API

Docxtemplater คืออะไร?

ในโลกดิจิทัลที่เคลื่อนที่อย่างรวดเร็วในยุคปัจจุบัน ประสิทธิภาพถือเป็นสิ่งสำคัญโดยเฉพาะเรื่องการจัดการเอกสาร ไม่ว่าจะเป็นการร่างสัญญา, สร้างรายงาน, หรือเขียนจดหมายส่วนบุคคล การมีเครื่องมือที่เชื่อถือได้เพื่อทำงานอัตโนมัติในการสร้างเอกสารสามารถช่วยประหยัดเวลาและทรัพยากรที่มีค่าได้ Docxtemplater คือตัวเลือกที่ทรงพลัง ที่ทำให้กระบวนการสร้างเอกสาร Word จากเทมเพลตง่ายขึ้น ไลบรารีนี้สนับสนุนการสร้างเอกสารแบบเทมเพลต โดยที่ช่องว่างภายในเทมเพลตของเอกสาร Word จะถูกแทนที่ด้วยข้อมูลจริงเพื่อสร้างเอกสารผลลัพธ์สุดท้าย

ในแก่นของมัน Docxtemplater เป็นไลบรารี JavaScript แบบโอเพ่นซอร์สที่ทรงพลังซึ่งช่วยให้นักพัฒนาซอฟต์แวร์สามารถสร้างและจัดการเอกสาร Word, Excel และ PowerPoint แบบไดนามิกโดยการผสานข้อมูลกับเทมเพลตที่กำหนดไว้ล่วงหน้า การใช้รูปแบบ OpenXML ทำให้ไลบรารีนี้ให้การควบคุมรายละเอียดของโครงสร้างและเนื้อหาในเอกสารของผู้ใช้อย่างละเอียด ทำให้สามารถแทรกช่องว่างที่จะแทนที่ด้วยข้อมูลจริงในระหว่างการทำงาน

Docxtemplater เป็นไลบรารีที่หลากหลายซึ่งช่วยให้นักพัฒนาซอฟต์แวร์สามารถทำงานอัตโนมัติในการสร้างเอกสารได้อย่างง่ายดาย ด้วยการใช้ประโยชน์จากพลังของเทมเพลตและการผสานข้อมูล คุณสามารถทำให้กระบวนการทำงานของเอกสารไหลลื่นและเพิ่มประสิทธิภาพอย่างมีนัยสำคัญ การใช้ไลบรารีอย่างถูกต้องนักพัฒนาซอฟต์แวร์สามารถสร้างเอกสารไดนามิกที่ตรงตามความต้องการของตนได้อย่างง่ายดาย ไม่ว่าจะเป็นการทำงานอัตโนมัติในการสร้างเอกสารหรือการปรับแต่งรายงานให้เป็นส่วนบุคคล Docxtemplater เป็นเครื่องมือที่มีคุณค่าในคลังของคุณ

Previous Next

วิธีการติดตั้ง 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!');

 ไทย