Chào mọi người,
Dạo gần đây mình thấy diễn đàn mình có nhiều bài viết rất hay về việc dùng Python để tự động hóa các tác vụ với Excel. Bản thân mình cũng đang ứng dụng Python khá nhiều trong công việc và thấy nó thực sự giải phóng sức lao động. Hôm nay, mình muốn chia sẻ một chút về cách mình dùng Python để trích xuất dữ liệu từ nhiều file Excel có cấu trúc tương tự nhau, nhưng với một cách tiếp cận hơi khác một chút so với các bài đã có.
Thay vì đọc từng file rồi gom lại, mình thử tạo một hàm để xác định và đọc các sheet cần thiết dựa trên một quy tắc nhất định (ví dụ: tên sheet có chứa một chuỗi ký tự hoặc theo thứ tự nhất định). Điều này giúp code linh hoạt hơn, đặc biệt khi số lượng sheet trong file thay đổi.
Ví dụ, nếu mình cần đọc dữ liệu từ tất cả các sheet có tên bắt đầu bằng "BaoCao_" trong một file:
import pandas as pd
def read_specific_sheets(file_path, prefix):
all_data = pd.DataFrame()
try:
excel_file = pd.ExcelFile(file_path)
sheet_names = [sheet for sheet in excel_file.sheet_names if sheet.startswith(prefix)]
for sheet_name in sheet_names:
df = excel_file.parse(sheet_name)
all_data = pd.concat([all_data, df], ignore_index=True)
except FileNotFoundError:
print(f"File not found: {file_path}")
return all_data
file = 'du_lieu_cua_toi.xlsx'
prefix_to_match = 'BaoCao_'
data = read_specific_sheets(file, prefix_to_match)
print(data.head())
Cách này giúp mình xử lý các trường hợp mà tên sheet không cố định hoặc có những sheet không liên quan cần bỏ qua. Ai đã từng làm tương tự hoặc có cách nào hay hơn thì chia sẻ với mình nhé!