Chào các bạn trong diễn đàn Sheet & Excel,
Dạo này mình đang vật lộn với việc tổng hợp dữ liệu từ hàng chục file Excel nhỏ lẻ vào một file duy nhất để làm báo cáo. Làm thủ công vừa mất thời gian, vừa dễ sai sót. Sau một hồi tìm tòi, mình đã tìm ra một cách khá hay sử dụng Python để tự động hóa việc này.
Ý tưởng là mình sẽ viết một script Python để duyệt qua tất cả các file Excel trong một thư mục chỉ định, sau đó đọc dữ liệu từ một sheet cụ thể trong mỗi file, rồi ghép chúng lại vào một DataFrame duy nhất. Cuối cùng, mình sẽ lưu DataFrame này ra một file Excel mới.
Dưới đây là một đoạn code minh họa đơn giản:
import pandas as pd
import glob
import os
# Thư mục chứa các file Excel cần tổng hợp
folder_path = 'duong_dan_toi_thu_muc_cua_ban'
# Tên file Excel đầu ra
output_file = 'bao_cao_tong_hop.xlsx'
# Lấy danh sách tất cả các file .xlsx trong thư mục
all_files = glob.glob(os.path.join(folder_path, '*.xlsx'))
df_list = []
for f in all_files:
try:
# Đọc dữ liệu từ sheet 'Data' của mỗi file
df = pd.read_excel(f, sheet_name='Data')
df_list.append(df)
except Exception as e:
print(f'Không đọc được file {f}: {e}')
# Ghép các DataFrame lại với nhau
if df_list:
big_df = pd.concat(df_list, ignore_index=True)
# Lưu kết quả ra file Excel mới
big_df.to_excel(output_file, index=False)
print(f'Đã tổng hợp dữ liệu thành công vào file: {output_file}')
else:
print('Không tìm thấy file Excel nào để tổng hợp.')
Các bạn chỉ cần thay 'duong_dan_toi_thu_muc_cua_ban' bằng đường dẫn thực tế tới thư mục chứa file của mình và đảm bảo các file đều có một sheet tên là 'Data' (hoặc bạn có thể sửa lại tên sheet cho phù hợp).
Cách này rất hiệu quả khi bạn có nhiều file dữ liệu nhỏ cần gộp lại. Hy vọng chia sẻ này hữu ích cho mọi người!