Menu

Tự động hóa gửi email báo cáo Excel hàng tuần bằng Python

Cao Khôi Trầm 06/06/2026 22:31 282 lượt xem 2 trả lời

Chào mọi người,

Dạo này công việc của mình hay phải gửi báo cáo Excel định kỳ hàng tuần cho sếp. Mỗi lần như vậy lại mất công mở file, đính kèm vào email rồi gửi đi, khá là mất thời gian. Mình nghĩ chắc phải có cách nào đó tự động hóa việc này.

Sau khi tìm hiểu, mình đã thử dùng Python để làm việc này và thấy khá hiệu quả. Hôm nay mình muốn chia sẻ lại với mọi người cách mình đã làm, hy vọng sẽ giúp ích cho ai đó đang gặp tình huống tương tự.

Ý tưởng chung:

  • Sử dụng thư viện pandas để đọc dữ liệu từ file Excel.
  • Sử dụng thư viện smtplibemail để gửi email.
  • Lên lịch chạy script hàng tuần.

Các bước thực hiện cơ bản:

  1. Chuẩn bị file Excel: Đảm bảo file báo cáo của bạn có cấu trúc ổn định.
  2. Viết script Python:
    • Import các thư viện cần thiết.
    • Đọc dữ liệu Excel bằng pd.read_excel().
    • Định dạng nội dung email (có thể bao gồm tóm tắt dữ liệu hoặc đính kèm file Excel).
    • Thiết lập thông tin tài khoản email gửi (tài khoản Gmail hoặc dịch vụ email khác).
    • Sử dụng smtplib.SMTP() để kết nối đến máy chủ email và gửi thư.
  3. Lên lịch chạy: Có thể sử dụng Task Scheduler trên Windows hoặc cron trên Linux để chạy script tự động theo lịch.

Ví dụ đoạn code gửi email đơn giản:

import smtplib
from email.mime.text import MIMEText

msg = MIMEText('Nội dung email báo cáo hàng tuần của bạn đây!')
msg['Subject'] = 'Báo cáo hàng tuần'
msg['From'] = 'your_email@gmail.com'
msg['To'] = 'recipient_email@example.com'

server = smtplib.SMTP('smtp.gmail.com', 587)
server.starttls()
server.login('your_email@gmail.com', 'your_password')
server.sendmail(msg['From'], msg['To'], msg.as_string())
server.quit()

Lưu ý: Bạn cần bật 'Less secure app access' hoặc tạo 'App password' nếu dùng Gmail.

Mình hy vọng chia sẻ này hữu ích. Nếu ai có cách làm hay hơn hoặc gặp khó khăn, cùng thảo luận nhé!

5
Hay quá bạn ơi! Mình cũng đang đau đầu với việc gửi báo cáo hàng tuần đây.
Phần bạn dùng pandas để đọc dữ liệu từ Excel có thể chia sẻ rõ hơn một chút được không? Mình đang phân vân không biết nên dùng thư viện nào cho tiện. Cảm ơn bạn đã chia sẻ nhé!
4

Tuyệt vời! Cảm ơn bạn đã chia sẻ kinh nghiệm tự động hóa gửi email báo cáo bằng Python. Mình cũng từng gặp tình huống tương tự, việc làm thủ công thực sự tốn thời gian và dễ sai sót.

Đoạn code bạn chia sẻ sử dụng pandas để đọc dữ liệu Excel rất tiện lợi. Mình cũng hay dùng pandas cho các tác vụ xử lý dữ liệu, nó thực sự mạnh mẽ.

Bạn có thể cho mình biết thêm về cách bạn xử lý phần đính kèm file Excel vào email không? Mình đang tìm hiểu về việc này và muốn xem có những cách nào khác nhau.

4

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

Đăng nhập Đăng ký