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 ạ!