Chào mọi người,
Dạo này công việc của mình liên quan nhiều đến việc gửi báo cáo Excel định kỳ hàng tháng. Thay vì làm thủ công từng lần, mình đã tìm hiểu và áp dụng Python để tự động hóa hoàn toàn quy trình này. Hôm nay mình muốn chia sẻ lại kinh nghiệm này với mọi người, hy vọng sẽ giúp ích cho các bạn đang gặp tình huống tương tự.
Vấn đề: Gửi báo cáo Excel hàng tháng cho nhiều người nhận, đôi khi cần đính kèm file Excel đã được xử lý/tổng hợp dữ liệu.
Giải pháp: Sử dụng Python kết hợp với thư viện pywin32 để tương tác với Outlook.
Các bước thực hiện chính:
- Chuẩn bị file Excel báo cáo (có thể là file có sẵn hoặc được tạo ra bởi một script Python khác).
- Viết script Python để mở Outlook, tạo một email mới, thêm người nhận (To, CC, BCC), nhập tiêu đề, nội dung email.
- Đính kèm file Excel báo cáo vào email.
- Gửi email tự động.
Ví dụ code đơn giản (minh họa):
import win32com.client as win32
import os
# Đường dẫn đến file Excel báo cáo
file_path = r"C:\path\to\your\report.xlsx"
# Thông tin email
subject = "Báo cáo hàng tháng - " + os.path.basename(file_path).split('.')[0]
body_content = "Kính gửi Quý vị,
Vui lòng xem file báo cáo đính kèm.
Trân trọng,
"
recipients = "recipient1@example.com; recipient2@example.com"
# Khởi tạo Outlook application
outlook = win32.Dispatch('Outlook.Application')
mail = outlook.CreateItem(0) # 0 Represents an Email
# Thiết lập thông tin email
mail.To = recipients
mail.Subject = subject
mail.HTMLBody = body_content
# Đính kèm file
mail.Attachments.Add(file_path)
# Gửi email
mail.Send()
print("Email đã được gửi thành công!")
Lưu ý:
- Bạn cần cài đặt Outlook trên máy tính và tài khoản email đã được cấu hình.
- Đảm bảo đường dẫn file
file_pathlà chính xác. - Có thể tùy biến nội dung email và danh sách người nhận theo nhu cầu.
Mình thấy cách này rất tiện lợi và tiết kiệm thời gian đáng kể. Mọi người có ý kiến hay phương pháp nào khác thì chia sẻ thêm nhé!