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!