Menu

Tự động hóa cập nhật dữ liệu từ nhiều file Excel về một file tổng hợp bằng Python

Phan Thi Nhiên 06/06/2026 16:09 591 lượt xem 2 trả lời

Chào mọi người,

Dạo gần đây mình có làm một dự án cần tổng hợp dữ liệu từ rất nhiều file Excel nhỏ lẻ của các chi nhánh về một file báo cáo tổng. Làm thủ công thì cực kỳ tốn thời gian và dễ sai sót. Vì vậy, mình đã tìm hiểu và viết một script Python nhỏ để tự động hóa việc này. Hôm nay chia sẻ lên đây để anh em nào đang gặp tình huống tương tự có thể tham khảo.

Vấn đề: Cần gộp dữ liệu từ nhiều file Excel (cùng cấu trúc) trong một thư mục vào một file Excel duy nhất.

Giải pháp: Sử dụng thư viện pandas của Python để đọc dữ liệu từ từng file và nối chúng lại.

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

  • 1. Chuẩn bị: Đặt tất cả các file Excel cần gộp vào chung một thư mục.
  • 2. Viết script Python:
import pandas as pd
import os

# Thư mục chứa các file Excel cần gộp
folder_path = 'duong/dan/den/thu/muc/excel'

# Tên file Excel tổng hợp
output_file = 'bao_cao_tong_hop.xlsx'

# Danh sách các file Excel trong thư mục
excel_files = [f for f in os.listdir(folder_path) if f.endswith('.xlsx')]

# Đọc file đầu tiên để lấy cấu trúc và dữ liệu ban đầu
df_total = pd.read_excel(os.path.join(folder_path, excel_files[0]))

# Lặp qua các file còn lại để gộp dữ liệu
for file in excel_files[1:]:
    df_temp = pd.read_excel(os.path.join(folder_path, file))
    df_total = pd.concat([df_total, df_temp], ignore_index=True)

# Lưu kết quả ra file Excel mới
df_total.to_excel(output_file, index=False)

print(f"Đã gộp thành công {len(excel_files)} file vào {output_file}")

Lưu ý:

  • Đảm bảo tất cả các file Excel nguồn có cùng cấu trúc cột.
  • Thay 'duong/dan/den/thu/muc/excel' bằng đường dẫn thực tế đến thư mục của bạn.
  • Script này chỉ gộp dữ liệu, không xử lý các trường hợp định dạng phức tạp hay các sheet khác nhau trong cùng một file.

Hy vọng chia sẻ này hữu ích cho mọi người!

4

Cảm ơn bạn đã chia sẻ giải pháp rất hay! Mình cũng từng vật lộn với việc tổng hợp dữ liệu thủ công, thấy Python đúng là "cứu cánh" thật.

Về câu hỏi của bạn về xử lý các file có cấu trúc hơi khác nhau, mình nghĩ có vài hướng tiếp cận:

  • Chuẩn hóa tên cột: Trước khi gộp, có thể viết thêm một đoạn code nhỏ để đổi tên các cột có biến thể về một tên chuẩn chung.
  • Chọn lọc cột theo tên: Nếu chỉ cần một số cột nhất định, có thể chỉ định rõ tên các cột cần lấy từ mỗi file, bỏ qua những cột thừa hoặc có cấu trúc khác.

Bạn có thử áp dụng cách nào cho các trường hợp file có cấu trúc không đồng nhất chưa? Rất mong được nghe thêm kinh nghiệm của bạn!

4

Hay quá bạn ơi! Mình cũng đang đau đầu với vụ gộp dữ liệu thủ công đây. Python đúng là cứu cánh cho những bài toán này. Bạn có thể chia sẻ thêm về cách xử lý trường hợp các file Excel có cấu trúc hơi khác nhau một chút không? Ví dụ như thứ tự cột hoặc tên cột có thể không hoàn toàn giống nhau ấy.

1

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

Đăng nhập Đăng ký