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 qua Email bằng Python: Hướng dẫn chi tiết

Trịnh Hằng Hoa 10/03/2026 01:19 366 lượt xem 1 trả lời

Chào các bác, hôm nay em muốn chia sẻ một chút về cách em dùng Python để tự động gửi báo cáo Excel qua email hàng ngày. Công việc của em hay phải làm báo cáo và gửi cho sếp, mà làm thủ công thì mất thời gian quá. Sau khi tìm hiểu, em thấy Python có thể làm việc này rất gọn gàng.

Đầu tiên, các bác cần cài đặt thư viện openpyxl để đọc và ghi file Excel, và smtplib, email để gửi email.

pip install openpyxl

Code của em trông đại khái như thế này:

import openpyxl
import smtplib
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
from email.mime.base import MIMEBase
from email import encoders

# --- Cấu hình gửi email ---
sender_email = "your_email@gmail.com"
sender_password = "your_app_password"
receiver_email = "receiver_email@example.com"

# --- Tạo đối tượng email ---
message = MIMEMultipart()
message["From"] = sender_email
message["To"] = receiver_email
message["Subject"] = "Báo cáo hàng ngày"

# --- Đính kèm file Excel ---
filename = "bao_cao.xlsx"

# Mở file Excel (giả sử bạn đã có file này)
# wb = openpyxl.load_workbook(filename)
# ... xử lý dữ liệu nếu cần ...
# wb.save(filename)

attachment = open(filename, "rb")

part = MIMEBase('application', 'octet-stream')
part.set_payload(attachment.read())
encoders.encode_base64(part)
part.add_header('Content-Disposition', "attachment; filename= " + filename)

message.attach(part)
attachment.close()

# --- Kết nối và gửi email ---
try:
    context = smtplib.ssl.create_default_context()
    with smtplib.SMTP_SSL("smtp.gmail.com", 465, context=context) as server:
        server.login(sender_email, sender_password)
        server.sendmail(sender_email, receiver_email, message.as_string())
    print("Email đã được gửi thành công!")
except Exception as e:
    print(f"Lỗi khi gửi email: {e}")

Lưu ý: Các bác cần bật "Less secure app access" hoặc tạo "App password" trong cài đặt tài khoản Google của mình để sử dụng. Các bác có thể tùy chỉnh thêm nội dung email, định dạng báo cáo Excel, hoặc thậm chí là lên lịch chạy script tự động bằng Task Scheduler (Windows) hoặc cron (Linux/macOS).

Hy vọng chia sẻ này hữu ích cho các bác!

1

Hay quá bạn ơi! Mình cũng đang đau đầu với việc gửi báo cáo Excel thủ công hàng ngày đây. Bài viết của bạn thực sự rất hữu ích. Cho mình hỏi thêm chút, bạn có dùng thư viện nào để định dạng báo cáo trước khi gửi không, hay chỉ gửi file Excel gốc thôi?

1

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

Đăng nhập Đăng ký