Chào mọi người, dạo này mình có làm việc với một file Excel có rất nhiều sheet, mỗi sheet lại chứa một loại dữ liệu khác nhau nhưng có chung một cấu trúc cột. Việc copy-paste thủ công từng sheet để tổng hợp lại quả thực rất tốn thời gian và dễ sai sót. Mình đã thử tìm hiểu và áp dụng Python để tự động hóa việc này, thấy khá hiệu quả nên muốn chia sẻ lại cho anh em cùng tham khảo.
Về cơ bản, chúng ta sẽ sử dụng thư viện pandas để đọc file Excel và xử lý dữ liệu. Ý tưởng là lặp qua từng sheet trong file, đọc dữ liệu của sheet đó vào một DataFrame, sau đó ghép các DataFrame lại với nhau thành một DataFrame lớn duy nhất.
Dưới đây là đoạn code minh họa:
import pandas as pd
file_path = 'du_lieu_cua_ban.xlsx'
# Đọc tất cả các sheet vào một dictionary
xls = pd.ExcelFile(file_path)
dataframes = {sheet_name: xls.parse(sheet_name) for sheet_name in xls.sheet_names}
# Ghép các DataFrame lại
all_data = pd.concat(dataframes.values(), ignore_index=True)
# Bây giờ 'all_data' chứa toàn bộ dữ liệu từ các sheet
print(all_data.head())
# Bạn có thể lưu kết quả ra file mới nếu muốn
# all_data.to_excel('du_lieu_tong_hop.xlsx', index=False)
Với đoạn code này, bạn chỉ cần thay 'du_lieu_cua_ban.xlsx' bằng đường dẫn file Excel của mình. Thư viện pandas sẽ giúp bạn đọc toàn bộ dữ liệu từ các sheet và ghép chúng lại một cách nhanh chóng.
Hy vọng chia sẻ này hữu ích cho các bạn đang phải xử lý các file Excel có nhiều sheet. Nếu có thắc mắc hoặc có cách nào hay hơn, mọi người cùng thảo luận nhé!