Tạo biểu mẫu in với Docs Google lấy dữ liệu Spreadsheet

Dân văn phòng thường xuyên in ấn, tạo báo cáo từ Spreadsheet, đây là hướng dẫn giúp bạn tạo ra được báo cáo động.

Chuẩn bị Google Docs Template

Tạo một Google Docs mẫu như sau, chèn các placeholder như:

Biên bản bàn giao

Tên khách hàng: {{TenKhachHang}}
Sản phẩm: {{SanPham}}
Số lượng: {{SoLuong}}
Ngày: {{Ngay}}

Lưu lại và lấy ID của Google Docs Template từ URL (ví dụ: https://docs.google.com/document/d/ID_CUA_TEMPLATE/edit)

Mã Apps Script

Vào Google Sheets → Extensions → Apps Script → dán đoạn code sau:

function xuatDocsTuSpreadsheet() {
  // ID file Docs mẫu
  const templateId = 'ID_CUA_TEMPLATE'; // thay bằng ID thực tế

  // Dữ liệu từ Google Sheet
  const sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Data');
  const data = sheet.getRange('A2:D2').getValues()[0]; // Dòng dữ liệu đầu tiên (có thể lặp nhiều dòng)

  const placeholders = {
    '{{TenKhachHang}}': data[0],
    '{{SanPham}}': data[1],
    '{{SoLuong}}': data[2],
    '{{Ngay}}': data[3],
  };

  // Tạo bản sao từ mẫu
  const newDoc = DriveApp.getFileById(templateId).makeCopy(`BienBan_${data[0]}`);
  const doc = DocumentApp.openById(newDoc.getId());
  const body = doc.getBody();

  // Thay thế các placeholder
  for (let key in placeholders) {
    body.replaceText(key, placeholders[key]);
  }

  doc.saveAndClose();

  // Hiển thị link tới file mới
  Logger.log('Tạo xong file: ' + newDoc.getUrl());
}

Chạy script

    Chạy hàm xuatDocsTuSpreadsheet() trong Apps Script.

    Mở View → Logs để lấy link file Docs được tạo.

    Có thể chỉnh để lặp qua nhiều dòng hoặc in ra PDF.

In hoặc Xuất PDF

Nếu muốn tự động in hoặc gửi file PDF, có thể thêm đoạn:

const pdf = DriveApp.getFileById(newDoc.getId()).getAs('application/pdf');
// Gửi mail, hoặc tải về, hoặc lưu vào thư mục Drive khác

Bài viết liên quan:

Dân văn phòng thường xuyên in ấn, tạo báo cáo từ Spreadsheet, đây là hướng dẫn giúp bạn tạo ra được báo cáo động.