Chào mọi người,
Dạo này mình đang mày mò dùng Python để xử lý dữ liệu Excel và thấy nó khá hiệu quả, đặ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 script nhỏ mình vừa viết để tự động gom dữ liệu từ nhiều sheet trong cùng một file Excel vào một sheet tổng hợp (Master Sheet).
Tình huống của mình là có một file báo cáo, mỗi tháng sẽ có một sheet mới với cấu trúc y hệt nhau, chỉ khác dữ liệu. Việc copy-paste thủ công từng sheet vào sheet tổng hợp rất tốn thời gian và dễ sai sót. Với Python, việc này trở nên đơn giản hơn rất nhiều.
Đây là đoạn code mình dùng:
import pandas as pd
excel_file = pd.ExcelFile('du_lieu_bao_cao.xlsx')
# Lấy danh sách các sheet, trừ sheet tổng hợp (nếu có)
sheets_to_process = [sheet for sheet in excel_file.sheet_names if sheet != 'Master Sheet']
dataframes = []
for sheet_name in sheets_to_process:
df = excel_file.parse(sheet_name)
dataframes.append(df)
# Ghép tất cả các DataFrame lại
master_df = pd.concat(dataframes, ignore_index=True)
# Lưu kết quả vào sheet 'Master Sheet' (hoặc tạo mới nếu chưa có)
with pd.ExcelWriter('du_lieu_bao_cao.xlsx', engine='openpyxl', mode='a') as writer:
master_df.to_excel(writer, sheet_name='Master Sheet', index=False)
print('Đã gom dữ liệu thành công vào Master Sheet!')Lưu ý:
- Bạn cần cài đặt thư viện
pandasvàopenpyxl:pip install pandas openpyxl - Thay
'du_lieu_bao_cao.xlsx'bằng tên file Excel của bạn. - Đảm bảo tên sheet tổng hợp trong code khớp với tên sheet bạn muốn lưu/cập nhật.
Cách này giúp mình tiết kiệm kha khá thời gian mỗi lần cập nhật báo cáo. Có ai đã thử dùng Python cho các tác vụ tương tự chưa? Chia sẻ thêm kinh nghiệm cho mọi người với nhé!