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!