Chào mọi người,
Mình là dân văn phòng, công việc hàng tuần đều phải gửi báo cáo Excel cho sếp. Trước đây, mình làm thủ công mất khá nhiều thời gian, nhất là khâu chuẩn bị file và gửi email. Gần đây, mình có tìm hiểu và áp dụng Python để tự động hóa quy trình này, thấy hiệu quả rõ rệt nên muốn chia sẻ lại cho anh em nào đang gặp tình huống tương tự.
Mục tiêu: Tự động tạo báo cáo Excel hàng tuần (lấy dữ liệu từ nguồn khác) và gửi báo cáo đó qua email bằng Outlook.
Công cụ sử dụng:
- Python 3.x
- Thư viện
pandasđể xử lý dữ liệu và tạo file Excel. - Thư viện
win32com.clientđể tương tác với Outlook.
Các bước thực hiện (tóm tắt):
- Chuẩn bị dữ liệu: Dùng pandas để đọc dữ liệu từ nguồn (ví dụ: database, file CSV khác) và xử lý.
- Tạo file Excel: Lưu dữ liệu đã xử lý vào một file Excel mới bằng pandas.
- Tương tác với Outlook: Sử dụng
win32com.clientđể mở Outlook, tạo một email mới, đính kèm file báo cáo Excel vừa tạo, nhập người nhận, tiêu đề và nội dung email. Cuối cùng là gửi email đi.
Một đoạn code ví dụ cho việc gửi email:
import win32com.client
outlook = win32com.client.Dispatch('outlook.application')
mail = outlook.CreateItem(0)
mail.To = 'recipient@example.com'
mail.Subject = 'Báo cáo hàng tuần'
mail.Body = 'Chào sếp,\n\nFile báo cáo đính kèm.'
mail.Attachments.Add('path/to/your/report.xlsx')
mail.Send()
Quá trình này giúp mình tiết kiệm được 1-2 tiếng mỗi tuần. Nếu anh em nào cần hướng dẫn chi tiết hơn về từng bước hoặc gặp khó khăn ở đâu, cứ mạnh dạn hỏi nhé. Mình sẽ cố gắng giải đáp.