Menu

Tự động hóa gửi báo cáo Excel qua Email bằng Python

Kiến Nhi Hương 08/06/2026 13:27 573 lượt xem 3 trả lời

Chào mọi người,

Dạo này mình có làm một script Python nhỏ để tự động gửi các báo cáo Excel định kỳ qua email. Thấy khá hữu ích nên chia sẻ lên đây để anh em tham khảo, biết đâu có ai đang cần.

Chuyện là sếp mình yêu cầu gửi báo cáo doanh thu hàng tuần vào mỗi sáng thứ 2. Làm thủ công thì mất công mở file, đính kèm email, rồi lại quên trước quên sau. Mình nghĩ ngay đến việc dùng Python để tự động hóa việc này.

Về cơ bản, script sẽ làm các bước sau:

  • Tìm file Excel báo cáo mới nhất trong một thư mục chỉ định.
  • Mở file Excel đó (có thể là đọc dữ liệu hoặc chỉ lấy file đính kèm).
  • Soạn email với nội dung có sẵn (ví dụ: tiêu đề, lời chào, tóm tắt nhanh).
  • Đính kèm file báo cáo Excel vào email.
  • Gửi email đến danh sách người nhận đã định nghĩa trước.

Để làm được việc này, mình chủ yếu dùng 2 thư viện:

  • pandas: Để đọc và xử lý dữ liệu Excel nếu cần.
  • smtplibemail: Để gửi email.

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

import smtplib
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText

msg = MIMEMultipart()
msg['From'] = 'your_email@gmail.com'
msg['To'] = 'recipient@example.com'
msg['Subject'] = 'Bao cao hang tuan'

body = "Day la bao cao doanh thu tuan nay."
msg.attach(MIMEText(body, 'plain'))

server = smtplib.SMTP('smtp.gmail.com', 587)
server.starttls()
server.login('your_email@gmail.com', 'your_password')
text = msg.as_string()
server.sendmail('your_email@gmail.com', 'recipient@example.com', text)
server.quit()

Tất nhiên, đây chỉ là phần gửi email cơ bản. Mình còn phải thêm phần lấy file, xử lý file, quản lý danh sách người nhận, và quan trọng là cách xử lý lỗi nữa.

Anh em nào đã từng làm hoặc có kinh nghiệm về mảng này thì vào chia sẻ thêm nhé. Hoặc nếu có ai muốn tìm hiểu sâu hơn thì mình có thể trao đổi thêm.

3

Hay quá bạn ơi! Việc tự động hóa gửi báo cáo này đúng là cứu cánh cho dân văn phòng bận rộn. Mình cũng đang tìm hiểu về Python để làm mấy vụ tương tự. Bạn có thể chia sẻ thêm về cách bạn xử lý việc tìm file Excel báo cáo mới nhất không? Có dùng thư viện nào đặc biệt không hay chỉ là các hàm cơ bản của Python thôi?

1

Cảm ơn bạn đã chia sẻ nhé! Mình cũng từng gặp cảnh "quên trước quên sau" với việc gửi báo cáo thủ công, tự động hóa bằng Python thế này đúng là giải pháp tuyệt vời.

Về việc tìm file báo cáo mới nhất, mình cũng tò mò không biết bạn dùng cách nào. Liệu có phải là sắp xếp theo ngày sửa đổi hay có một quy tắc đặt tên file nào đó không? Chia sẻ thêm cho mọi người với nhé!

2

Hay quá bạn ơi! Tự động hóa gửi báo cáo bằng Python thế này đúng là tiết kiệm khối thời gian và công sức. Mình cũng từng vật lộn với việc gửi báo cáo thủ công, đôi khi còn bị sót nữa.

Bạn có thể chia sẻ chi tiết hơn về cách bạn xác định "file báo cáo mới nhất" không? Ví dụ, bạn sắp xếp file theo ngày sửa đổi hay có một quy tắc đặt tên file đặc biệt nào không? Mình đang tìm hiểu để áp dụng cho công việc của mình. Cảm ơn bạn nhiều!

4

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

Đăng nhập Đăng ký