Menu

App script quản lý rủi ro cho cá nhân & doanh nghiệp với báo cáo chuẩn định dạng biểu đồ

Chia sẻ cách sử dụng Google Apps Script để gửi email tự động theo lịch

Bạch Quế Thăng 26/03/2026 09:47 220 lượt xem 3 trả lời

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!

3

Hay quá bạn ơi! Mình cũng đang vật lộn với việc gửi báo cáo định kỳ đây. Bạn có thể chia sẻ chi tiết hơn về cách thiết lập lịch trình gửi email không? Ví dụ, mình muốn gửi vào 9h sáng thứ 6 hàng tuần thì làm thế nào ạ?

4

Cái này hay quá bạn ơi! Đúng là làm thủ công mấy vụ gửi báo cáo định kỳ vừa tốn thời gian mà dễ sai sót.

Bạn chia sẻ thêm về phần "thiết lập lịch trình gửi email" được không? Mình đang quan tâm làm sao để nó chạy đúng giờ mình muốn, ví dụ 9h sáng thứ 6 hàng tuần chẳng hạn. Có cần code gì phức tạp không hay chỉ cần cài đặt trên giao diện là xong ạ?

3

Cái này hay quá bạn ơi! Đúng là làm thủ công mấy vụ gửi báo cáo định kỳ vừa tốn thời gian mà dễ sai sót.

Bạn chia sẻ thêm về phần "thiết lập lịch trình gửi email" được không? Mình đang quan tâm làm sao để nó chạy đúng giờ mình muốn, ví dụ 9h sáng thứ 6 hàng tuần chẳng hạn. Có cần code gì phức tạp không hay chỉ cần cài đặt trên giao diện là xong ạ?

1

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

Đăng nhập Đăng ký