Chào các anh chị trong diễn đàn,
Dạo này em đang loay hoay với việc gửi báo cáo Excel tự động hàng ngày cho sếp. Công việc này khá tốn thời gian vì em phải mở file Excel, lưu dưới dạng PDF rồi mới gửi mail. Em có tìm hiểu và thử nghiệm một chút với Python để tự động hóa việc này và muốn chia sẻ lại cho mọi người tham khảo.
Ý tưởng của em là dùng Python để:
- Mở file Excel hiện tại.
- Lưu file Excel đó dưới dạng PDF.
- Tạo một email mới với nội dung định sẵn, đính kèm file PDF vừa tạo.
- Gửi email đó bằng tài khoản Outlook của mình.
Thư viện Python em dùng chủ yếu là pandas để xử lý Excel (nếu cần thiết) và win32com.client để tương tác với Outlook.
Đoạn code cơ bản để gửi mail như sau:
import win32com.client
import os
outlook = win32com.client.Dispatch('Outlook.Application')
mail = outlook.CreateItem(0)
sender_email = "your_email@example.com"
receiver_email = "boss_email@example.com"
subject = "Báo cáo hàng ngày"
body_content = "Kính gửi Sếp, em xin gửi báo cáo ngày hôm nay ạ."
attachment_path = "C:\\Path\\To\\Your\\Report.pdf"
mail.To = receiver_email
mail.Subject = subject
mail.Body = body_content
mail.Attachments.Add(attachment_path)
# Để gửi ngay, bỏ comment dòng dưới
# mail.Send()
# Để mở cửa sổ soạn thảo mail, giữ nguyên dòng dưới
mail.Display()
Việc lưu file Excel sang PDF có thể thực hiện bằng cách mở file Excel bằng win32com.client và dùng phương thức ExportAsFixedFormat. Em sẽ chia sẻ chi tiết hơn nếu có anh chị nào quan tâm ạ.
Cách này giúp em tiết kiệm được kha khá thời gian mỗi ngày. Mong nhận được thêm ý kiến đóng góp từ mọi người!