API JavaScript để Tạo Tài Liệu Word Động

Thư viện JavaScript mã nguồn mở để Tạo Tài Liệu Word Động với Node.js và các ứng dụng chạy trên trình duyệt.

Docx-templates là gì?

Docx-Templates là một thư viện JavaScript mã nguồn mở cho phép các nhà phát triển phần mềm tạo ra các tài liệu Microsoft Word (.docx) động bằng cách sử dụng các mẫu đã được định sẵn. Thay vì phải tự xây dựng tài liệu Word một cách thủ công thông qua lập trình, các nhà phát triển có thể thiết kế mẫu trong Microsoft Word và chèn dữ liệu động bằng các lệnh nhúng. Thư viện này hoạt động cả trong môi trường Node.js và trình duyệt, làm cho nó rất đa năng cho các ứng dụng web hiện đại và phía máy chủ. Nó xử lý các tệp DOCX bằng cách phân tích cấu trúc XML nội bộ và thay thế các lệnh mẫu bằng dữ liệu thực tế tại thời gian chạy.

Thư viện Docx-Templates là một công cụ mạnh mẽ, mã nguồn mở được thiết kế cho cả môi trường Node.js và trình duyệt. Ưu điểm chính của thư viện là việc tách biệt thiết kế và logic. Người dùng không chuyên có thể thiết kế bố cục và kiểu dáng trong Word, trong khi các nhà phát triển tập trung vào việc chèn dữ liệu. Nó hỗ trợ logic phức tạp như vòng lặp, định dạng có điều kiện, và thậm chí việc thực thi các đoạn mã JavaScript trực tiếp trong tài liệu. Điều này làm cho nó trở thành giải pháp lý tưởng cho các nhà phát triển cần tạo ra các báo cáo độ chính xác cao mà không phải vật lộn với XML hay các công cụ thiết kế độc quyền.

Previous Next

Bắt đầu với Docx-templates

Cách cài đặt thư viện Docx-templates được khuyến nghị là thông qua npm. Vui lòng sử dụng lệnh sau để cài đặt suôn sẻ

Cài đặt Docx-Templates qua NPM

$ npm install docx-templates 

Cài đặt Docx-Templates qua Yarn/strong>

$ yarn add docx-templates 

Tạo tài liệu dựa trên mẫu qua API JS

Thư viện Docx-Templates mã nguồn mở cho phép các nhà phát triển phần mềm thiết kế tài liệu trong Word và chèn dữ liệu một cách động bằng các lệnh đơn giản. Cách tiếp cận này tách biệt phần trình bày khỏi logic, giúp mẫu dễ quản lý và cập nhật mà không cần thay đổi mã. Bạn có thể truy cập trực tiếp các thuộc tính từ đối tượng dữ liệu của mình hoặc thậm chí chạy các biểu thức đơn giản. Ví dụ, để chèn họ và tên đầy đủ, mẫu của bạn sẽ trông như sau: {firstName} {surname}. Thư viện sẽ đánh giá mã và thay thế một cách liền mạch.

Cách tạo tài liệu Word một cách động trong các ứng dụng JavaScript?

import createReport from 'docx-templates';
import fs from 'fs';

const template = fs.readFileSync('template.docx');

const report = await createReport({
  template,
  data: { name: 'John', surname: 'Doe' },
});

fs.writeFileSync('output.docx', report);

Tiêm ảnh động qua JavaScript

Không chỉ văn bản, thư viện Docx-Templates mã nguồn mở còn có thể chèn hình ảnh ngay lập tức. Điều này bao gồm các tệp tin cục bộ, hình ảnh từ URL, hoặc thậm chí các mã QR được tạo lập trình. Bạn có thể kiểm soát kích thước và vị trí của hình ảnh. Tính năng này là một bước đột phá trong việc tạo thẻ nhận dạng, danh mục sản phẩm, hoặc báo cáo cần biểu đồ động và bằng chứng hình ảnh. Dưới đây là một ví dụ đơn giản minh họa cách chèn hình ảnh vào tài liệu Word thông qua API JavaScript.

Cách chèn hình ảnh ngay lập tức trong tài liệu Word qua API JavaScript?

const buffer = await createReport({
  template,
  data: {
    userAvatar: async () => {
      const resp = await fetch('https://example.com/photo.png');
      return { width: 3, height: 3, data: await resp.arrayBuffer(), extension: '.png' };
    }
  },
});
// In Word: {IMAGE userAvatar()}

Vòng lặp mạnh mẽ (FOR/END-FOR)

Xử lý danh sách dữ liệu trở nên liền mạch với lệnh FOR. Tính năng này cho phép bạn lặp qua các mảng để tạo các hàng bảng, danh sách, hoặc thậm chí toàn bộ các phần của tài liệu. Thư viện Docx-Templates đã bao gồm hỗ trợ vòng lặp lồng nhau, cho phép bạn biểu diễn các cấu trúc dữ liệu phân cấp phức tạp, chẳng hạn như danh sách các phòng ban cùng với nhân viên của chúng, đồng thời duy trì kiểu dáng Word gốc. Ví dụ mã sau đây cho thấy cách thực hiện điều này.

Cách áp dụng vòng lặp nâng cao trong các ứng dụng JavaScript?

const buffer = await createReport({
  template,
  data: {
    projects: [
      { name: 'SEO Optimization', status: 'Completed' },
      { name: 'API Integration', status: 'In Progress' }
    ]
  },
});
/* In Word:
{FOR project IN projects}
Project: {project.name} - Status: {project.status}
{END-FOR}
*/

Ngữ cảnh JavaScript tùy chỉnh (EXEC)

Một trong những tính năng tiên tiến nhất của thư viện Docx-Templates là khả năng chạy các đoạn mã JavaScript tùy ý bằng lệnh EXEC (hoặc !). Bằng cách cung cấp additionalJsContext, bạn có thể mở rộng các hàm trợ giúp tùy chỉnh cho mẫu. Điều này cho phép mẫu thực hiện các phép tính, định dạng ngày tháng, hoặc thao tác chuỗi nội bộ mà không cần tiền xử lý từng dữ liệu trong logic ứng dụng chính của bạn.

 Tiếng Việt