Menu

Tự động hóa gửi email báo cáo Excel hàng ngày bằng Python và Outlook: Hướng dẫn chi tiết

Mai Tuyền Viết 18/03/2026 11:22 323 lượt xem 3 trả lời

Chào mọi người,

Dạo gần đây mình có tìm hiểu về việc tự động hóa các tác vụ lặp đi lặp lại trong Excel, đặc biệt là việc gửi báo cáo qua email. Mình thấy nhiều anh em trên diễn đàn cũng quan tâm đến chủ đề này, đặc biệt là với Python. Hôm nay mình xin chia sẻ một cách khá hay để tự động gửi báo cáo Excel hàng ngày bằng Python và Outlook.

Công việc này rất hữu ích khi bạn cần gửi báo cáo định kỳ cho sếp hoặc đồng nghiệp mà không muốn tốn thời gian thao tác thủ công mỗi ngày.

Các bước thực hiện

  1. Chuẩn bị file Excel báo cáo: Đảm bảo file Excel của bạn đã được chuẩn bị sẵn sàng, chứa dữ liệu và định dạng theo yêu cầu.
  2. Cài đặt thư viện Python: Chúng ta sẽ cần thư viện pywin32 để tương tác với Outlook. Nếu chưa có, bạn có thể cài đặt bằng pip:
    pip install pywin32
  3. Viết script Python: Dưới đây là một đoạn code mẫu để gửi email. Bạn cần thay đổi các thông tin như địa chỉ email người nhận, tiêu đề, nội dung và đường dẫn file đính kèm cho phù hợp.
import win32com.client as win32
import os

def send_excel_report(recipient_email, subject, body, attachment_path):
    outlook = win32.Dispatch('outlook.application')
    mail = outlook.CreateItem(0)

    mail.To = recipient_email
    mail.Subject = subject
    mail.Body = body

    if os.path.exists(attachment_path):
        mail.Attachments.Add(attachment_path)
    else:
        print(f"File đính kèm không tồn tại: {attachment_path}")

    mail.Send()
    print("Email đã được gửi thành công!")

# Thông tin chi tiết
recipient = "nguoinhan@example.com"
email_subject = "Báo cáo hàng ngày - "
email_body = "Kính gửi Anh/Chị,
Dưới đây là báo cáo hàng ngày.
Trân trọng,"
excel_file = "C:\\Path\\To\\Your\\Report.xlsx" # Thay đổi đường dẫn file của bạn

send_excel_report(recipient, email_subject, email_body, excel_file)

Lưu ý

  • Script này yêu cầu Outlook phải được cài đặt trên máy tính của bạn và đang hoạt động.
  • Hãy chắc chắn rằng đường dẫn đến file Excel là chính xác.
  • Bạn có thể tùy chỉnh thêm nội dung email, thêm nhiều người nhận, hoặc thậm chí là định dạng HTML cho email nếu muốn.

Hy vọng chia sẻ này hữu ích cho mọi người. Nếu có bất kỳ câu hỏi nào, đừng ngần ngại đặt câu hỏi nhé!

2

Hay quá! Bài viết này rất thiết thực cho những ai cần tự động hóa công việc gửi báo cáo Excel hàng ngày. Mình cũng đang tìm hiểu về Python để làm việc này, đặc biệt là cách kết hợp với Outlook.

Bạn có thể chia sẻ thêm về phần xử lý file Excel bằng Python không? Ví dụ, làm sao để đọc dữ liệu từ một sheet cụ thể, hoặc lọc ra những dòng cần thiết trước khi đính kèm vào email?

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

0

Topic này đúng là "hot" đấy! Mình cũng đang vật lộn với việc gửi báo cáo Excel thủ công mỗi ngày, mất bao nhiêu thời gian.

Chia sẻ của bạn về việc dùng Python và Outlook rất hay. Mình có một thắc mắc nhỏ là ngoài Outlook, liệu có cách nào để tự động gửi email qua các dịch vụ khác như Gmail không bạn? Nếu có thì cần những thư viện Python nào khác nữa?

3

Cảm ơn bạn đã chia sẻ bài viết rất chi tiết về tự động hóa gửi email báo cáo Excel bằng Python và Outlook. Cách này thực sự giúp tiết kiệm rất nhiều thời gian và công sức cho các tác vụ lặp đi lặp lại.

Mình cũng có một chút kinh nghiệm về việc này, nếu bạn muốn tự động hóa việc gửi email qua Gmail hoặc các dịch vụ khác, bạn có thể tham khảo thư viện smtplibemail của Python. Nó cũng khá tương tự với cách bạn làm với Outlook đó.

Một câu hỏi nhỏ nữa là bạn có gặp khó khăn gì trong việc xử lý các định dạng phức tạp của file Excel khi dùng Python không? Ví dụ như các biểu đồ hay bảng Pivot?

4

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

Đăng nhập Đăng ký