Chào mọi người,
Dạo này công việc của mình có nhiều báo cáo cần gửi định kỳ hàng tuần cho sếp. Gõ tay email rồi đính kèm file Excel/Sheets mỗi lần cũng hơi mất thời gian. Tình cờ mình tìm hiểu và áp dụng được Google Apps Script để tự động hóa việc này, thấy khá hay nên chia sẻ lại cho anh em nào cần.
Mục đích: Tự động gửi email kèm file Google Sheets (hoặc file đã export ra định dạng khác) theo một lịch trình cố định (ví dụ: 8h sáng thứ 2 hàng tuần).
Cách thực hiện:
- Bước 1: Mở file Google Sheets bạn muốn gửi.
- Bước 2: Vào Extensions -> Apps Script.
- Bước 3: Copy và dán đoạn code dưới đây vào trình soạn thảo.
function sendReport() {
var spreadsheet = SpreadsheetApp.getActiveSpreadsheet();
var sheetName = "Sheet1"; // Thay "Sheet1" bằng tên sheet bạn muốn gửi
var recipient = "email@example.com"; // Thay bằng địa chỉ email người nhận
var subject = "Báo cáo hàng tuần - " + new Date().toLocaleDateString();
var body = "Xin chào Sếp,
Đây là báo cáo hàng tuần theo yêu cầu.
Trân trọng,
var url = spreadsheet.getUrl();
var pdfUrl = "https://www.googleapis.com/drive/v3/files/" + spreadsheet.getId() + "/export?format=pdf&portrait=true&size=A4&fitw=true&printerDpi=300"; // Tùy chọn export ra PDF
var token = ScriptApp.getOAuthToken();
var options = {
headers: {
'Authorization': 'Bearer ' + token
}
};
var res = UrlFetchApp.fetch(pdfUrl, options);
MailApp.sendEmail({
to: recipient,
subject: subject,
htmlBody: body,
attachments: [res.getAs(MimeType.PDF).setName(subject + ".pdf")]
});
}
- Bước 4: Tùy chỉnh các biến trong code:
sheetName: Tên của sheet bạn muốn gửi (nếu chỉ muốn gửi 1 sheet).recipient: Địa chỉ email người nhận.subject: Tiêu đề email.body: Nội dung email (có thể dùng HTML cơ bản).- Bạn có thể sửa đổi phần
pdfUrlđể export sang các định dạng khác như Excel (.xlsx) nếu muốn. - Bước 5: Lưu script lại (đặt tên ví dụ: SendReport).
- Bước 6: Thiết lập Trigger (cơ chế kích hoạt tự động).
- Trong màn hình Apps Script, bấm vào biểu tượng đồng hồ (Triggers) bên trái.
- Bấm nút Add Trigger.
- Chọn hàm
sendReport, chọn Time-driven, chọn tần suất mong muốn (ví dụ: Day timer -> 8 AM to 9 AM), chọn thông báo lỗi. - Lưu lại và cấp quyền cho script truy cập tài khoản của bạn.
Sau khi thiết lập xong, script sẽ tự động chạy và gửi email theo đúng lịch bạn đã cài đặt.
Chúc các bạn thành công!