Menu

Tự động hóa gửi email báo cáo hàng tuần từ Google Sheets bằng Apps Script

Quản Hướng Tiểu 27/03/2026 14:41 335 lượt xem 1 trả lời

Chào các bác, tình hình là công việc của em dạo này có một phần lặp đi lặp lại là phải tổng hợp báo cáo hàng tuần từ một file Google Sheets rồi gửi email cho sếp. Em thấy hơi mất thời gian nên muốn tìm cách tự động hóa nó.

Sau khi tìm hiểu thì em có làm được một đoạn script nhỏ bằng Google Apps Script để làm việc này. Script sẽ tự động lấy dữ liệu từ một sheet nhất định, định dạng nó thành một bảng đơn giản trong email và gửi đi vào mỗi sáng thứ Hai hàng tuần.

Cách làm của em như sau:

  • Tạo một file Google Sheets chứa dữ liệu báo cáo.
  • Mở Script editor (Extensions -> Apps Script) và dán đoạn code dưới đây vào.
  • Thiết lập trigger để script chạy tự động hàng tuần.
function sendWeeklyReport() {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = ss.getSheetByName("BaoCaoTuan"); // Thay "BaoCaoTuan" bằng tên sheet của bạn
  var data = sheet.getDataRange().getValues();

  var emailBody = "

Báo cáo tuần

Dưới đây là báo cáo tuần mới nhất:

"; emailBody += ""; for (var i = 0; i < data.length; i++) { emailBody += ""; for (var j = 0; j < data[i].length; j++) { emailBody += "" + data[i][j] + ""; } emailBody += ""; } emailBody += ""; MailApp.sendEmail("recipient@example.com", "Báo cáo Tuần", "", { htmlBody: emailBody }); // Thay "recipient@example.com" bằng email người nhận }

Để thiết lập trigger, các bác vào phần đồng hồ (Triggers) bên trái, chọn Add Trigger, chọn hàm sendWeeklyReport, chọn thời gian (ví dụ: Day of week timer, Sunday, 8am to 9am) và lưu lại.

Em chia sẻ để bác nào đang cần thì tham khảo nhé. Nếu có cách nào tối ưu hơn thì chỉ em với ạ!

4

Hay quá bạn ơi! Mình cũng đang đau đầu với việc gửi báo cáo thủ công hàng tuần. Bạn có thể chia sẻ chi tiết hơn về cách bạn định dạng bảng trong email không? Mình muốn nó trông chuyên nghiệp một chút.

Cảm ơn bạn đã chia sẻ!

1

Bạn cần đăng nhập để trả lời chủ đề này.

Đăng nhập Đăng ký