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)
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 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.
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
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.