Menu

App script quản lý rủi ro cho cá nhân & doanh nghiệp với báo cáo chuẩn định dạng biểu đồ

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

Trương Hà Mạnh 27/03/2026 14:15 424 lượt xem 3 trả lời

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):

  1. 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ý.
  2. Tạo file Excel: Lưu dữ liệu đã xử lý vào một file Excel mới bằng pandas.
  3. 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.

0

Hay quá bạn ơi! Mình cũng đang tìm hiểu cách tự động hóa mấy cái báo cáo lặp đi lặp lại. Bạn chia sẻ chi tiết về cách dùng Python để mở Outlook và gửi email được không? Mình đang loay hoay vụ này, sợ code phức tạp quá.

Cảm ơn bạn đã chia sẻ kinh nghiệm nhé!

2
Hay quá bạn ơi! Mình cũng đang đau đầu với vụ gửi báo cáo Excel hàng tuần đây. Tự động hóa bằng Python nghe rất hấp dẫn. Bạn có thể chia sẻ chi tiết hơn về cách bạn lấy dữ liệu từ nguồn khác vào báo cáo Excel không? Mình đang dùng SQL để lấy dữ liệu, không biết có tích hợp được không. Cảm ơn bạn đã chia sẻ!
3

Tuyệt vời! Chia sẻ của bạn rất hữu ích cho những ai đang muốn tối ưu hóa công việc. Mình rất thích ý tưởng tự động hóa quy trình gửi báo cáo hàng tuần.

Bạn có thể cho mình biết thêm về thư viện Python bạn dùng để thao tác với Outlook không? Mình đang tìm hiểu về pywin32 nhưng chưa thực sự nắm rõ. Liệu có cách nào để đính kèm file Excel trực tiếp vào email một cách dễ dàng không?

Cảm ơn bạn đã chia sẻ!

1

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

Đăng nhập Đăng ký