Menu

Tự động hóa việc tạo bảng tổng hợp từ nhiều file Excel bằng Python

Thi Thương Diệu 17/03/2026 01:48 542 lượt xem 2 trả lời

Chào các anh em trong diễn đàn Sheet & Excel!

Dạo gần đây mình có mày mò dùng Python để xử lý dữ liệu trong Excel và thấy nó thực sự mạnh mẽ, đặc biệt là với các tác vụ lặp đi lặp lại. Hôm nay mình muốn chia sẻ một kinh nghiệm nhỏ nhưng khá hữu ích: làm sao để tự động hóa việc gom dữ liệu từ nhiều file Excel khác nhau vào một bảng tổng hợp duy nhất.

Tình huống của mình là có một bộ dữ liệu được chia ra thành nhiều file Excel theo từng tháng (ví dụ: Thang_01.xlsx, Thang_02.xlsx, ...). Mỗi file này có cấu trúc giống hệt nhau, chỉ khác nhau về dữ liệu bên trong. Việc gom thủ công từng file vào một file tổng hợp rất tốn thời gian và dễ sai sót.

Với Python, mình đã viết một đoạn script nhỏ để giải quyết vấn đề này. Về cơ bản, script sẽ:

  • Tìm tất cả các file Excel trong một thư mục chỉ định.
  • Mở từng file, đọc dữ liệu từ một sheet cụ thể (hoặc tất cả các sheet nếu muốn).
  • Ghép nối dữ liệu từ tất cả các file lại với nhau.
  • Lưu kết quả vào một file Excel mới hoặc một sheet mới trong file hiện có.

Mình sử dụng thư viện pandas rất quen thuộc trong cộng đồng Python. Cú pháp cơ bản để đọc và ghép nối các DataFrame như sau:

import pandas as pd
import os

folder_path = 'duong_dan_den_thu_muc_chua_file'
all_files = [os.path.join(folder_path, f) for f in os.listdir(folder_path) if f.endswith('.xlsx')]

list_df = []
for file in all_files:
    df = pd.read_excel(file)
    list_df.append(df)

combined_df = pd.concat(list_df, ignore_index=True)
combined_df.to_excel('tong_hop_du_lieu.xlsx', index=False)

Cách này giúp mình tiết kiệm hàng giờ làm việc mỗi tháng. Nếu có anh em nào đang gặp tình huống tương tự và muốn tìm hiểu sâu hơn về script này hoặc cần tùy chỉnh, cứ mạnh dạn hỏi nhé. Chúng ta cùng thảo luận!

5

Đúng là Python "cân" được hết mấy vụ gom dữ liệu này thật bạn nhỉ! Mình cũng từng vật lộn với việc gom hàng chục file Excel thủ công, tốn cả buổi.

Về việc đọc từng file và gom lại, mình thường dùng thư viện pandas. Nó rất mạnh mẽ và cú pháp cũng dễ tiếp cận lắm. Bạn có thể dùng glob để lấy danh sách tất cả các file Excel theo mẫu tên rồi cho vào vòng lặp, mỗi lần lặp thì đọc một file bằng pd.read_excel() và nối chúng lại với nhau bằng pd.concat().

Bạn đã thử cách này chưa, hay có dùng thư viện nào khác hiệu quả hơn không? Chia sẻ thêm cho anh em học hỏi với nhé!

5

Hay quá bạn ơi! Mình cũng đang tìm hiểu về Python để tự động hóa mấy vụ gom dữ liệu này. Bạn có thể chia sẻ thêm về cách bạn đọc từng file Excel (ví dụ: Thang_01.xlsx, Thang_02.xlsx) và gom chúng lại không? Mình đang phân vân không biết dùng thư viện nào cho tiện nhất.

2

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

Đăng nhập Đăng ký