Chào mọi người, dạo gần đây mình có làm một dự án nhỏ liên quan đến việc tổng hợp dữ liệu từ nhiều file Excel lại vào một file duy nhất. Công việc này khá tốn thời gian nếu làm thủ công, đặc biệt khi số lượng file lên đến vài chục hoặc cả trăm.
Mình đã tìm hiểu và áp dụng Python để tự động hóa quá trình này. Cách làm của mình khá đơn giản, chủ yếu sử dụng thư viện pandas. Các bước chính như sau:
- Bước 1: Xác định thư mục chứa các file Excel cần tổng hợp.
- Bước 2: Lặp qua từng file trong thư mục đó.
- Bước 3: Đọc dữ liệu từ mỗi file Excel bằng
pandas.read_excel(). - Bước 4: Ghép (append) dữ liệu từ các file lại với nhau thành một DataFrame lớn.
- Bước 5: Lưu DataFrame tổng hợp này ra một file Excel mới.
Code ví dụ minh họa:
import pandas as pd
import glob
import os
# Thư mục chứa các file Excel nguồn
source_folder = 'duong_dan_toi_thu_muc_cua_ban'
# File Excel đích để lưu kết quả
output_file = 'tong_hop_du_lieu.xlsx'
# Lấy danh sách tất cả các file .xlsx trong thư mục nguồn
all_files = glob.glob(os.path.join(source_folder, '*.xlsx'))
list_df = []
for f in all_files:
df = pd.read_excel(f)
list_df.append(df)
# Ghép tất cả các DataFrame lại
compiled_df = pd.concat(list_df, ignore_index=True)
# Lưu kết quả ra file Excel mới
compiled_df.to_excel(output_file, index=False)
print(f'Đã tổng hợp xong dữ liệu từ {len(all_files)} file vào {output_file}')
Cách này giúp mình tiết kiệm rất nhiều thời gian và giảm thiểu sai sót so với việc copy-paste thủ công. Hy vọng chia sẻ này hữu ích cho các bạn đang gặp vấn đề tương tự.
Có ai có cách nào hay hơn hoặc muốn thảo luận thêm về các ứng dụng tự động hóa khác với Python thì cứ chia sẻ nhé!