Chào mọi người,
Dạo này mình đang loay hoay với một đống file Excel chứa dữ liệu bán hàng của các chi nhánh. Sếp yêu cầu mình trích xuất ra danh sách những đơn hàng có giá trị trên 10 triệu đồng và có trạng thái 'Hoàn thành' từ tất cả các file này. Làm thủ công thì đúng là 'cày' không xuể, mất cả ngày trời mà sai sót thì dễ xảy ra.
Tình cờ mình đọc được một vài bài viết về Python trong Excel, và nghĩ bụng sao không dùng nó để giải quyết vấn đề này nhỉ? Sau một hồi tìm tòi, mình đã viết được một script nhỏ để tự động hóa việc này. Nay chia sẻ lại với mọi người để ai gặp tình huống tương tự có thể tham khảo.
Ý tưởng là:
- Duyệt qua tất cả các file Excel trong một thư mục chỉ định.
- Với mỗi file, đọc dữ liệu từ một sheet cụ thể (hoặc tất cả các sheet nếu cần).
- Áp dụng điều kiện lọc: cột 'Doanh thu' > 10,000,000 AND cột 'Trạng thái' == 'Hoàn thành'.
- Gom các dòng dữ liệu thỏa mãn điều kiện từ tất cả các file vào một file Excel mới.
Code mẫu (sử dụng thư viện pandas):
import pandas as pd
import os
folder_path = 'duong_dan_toi_thu_muc_excel'
output_file = 'don_hang_lon.xlsx'
all_orders = pd.DataFrame()
for filename in os.listdir(folder_path):
if filename.endswith('.xlsx'):
file_path = os.path.join(folder_path, filename)
try:
df = pd.read_excel(file_path)
# Giả sử cột doanh thu là 'Doanh thu' và trạng thái là 'Trangthai'
filtered_df = df[(df['Doanh thu'] > 10000000) & (df['Trangthai'] == 'Hoàn thành')]
all_orders = pd.concat([all_orders, filtered_df])
except Exception as e:
print(f'Error processing {filename}: {e}')
all_orders.to_excel(output_file, index=False)
print(f'Đã xuất danh sách đơn hàng vào file: {output_file}')
Lưu ý: Bạn cần thay 'duong_dan_toi_thu_muc_excel' bằng đường dẫn thực tế tới thư mục chứa file Excel của bạn, và điều chỉnh tên các cột cho phù hợp với file của bạn.
Hy vọng script này hữu ích cho mọi người. Có ai có cách nào hay hơn hoặc gặp khó khăn gì khi áp dụng thì cùng thảo luận nhé!