Menu

Tự động hóa trích xuất dữ liệu từ nhiều file Excel có cấu trúc khác nhau bằng Python

Hàn Hậu Hạ 05/06/2026 05:14 443 lượt xem 1 trả lời

Chào mọi người,

Dạo gần đây mình có làm việc với một dự án yêu cầu trích xuất dữ liệu từ rất nhiều file Excel khác nhau, mà mỗi file lại có cấu trúc hơi khác một chút (cột tên, thứ tự cột, thậm chí là sheet tên khác nhau). Làm thủ công thì đúng là tốn thời gian và dễ sai sót.

Sau một hồi tìm tòi, mình đã tìm ra cách dùng Python để giải quyết vấn đề này một cách hiệu quả. Mình muốn chia sẻ lại cho anh em nào đang gặp tình huống tương tự.

Vấn đề: Cần gom dữ liệu từ nhiều file Excel, mỗi file có thể có cấu trúc hơi khác.

Giải pháp với Python:

  • Sử dụng thư viện pandas để đọc file Excel.
  • Kết hợp glob để tìm tất cả các file Excel trong một thư mục.
  • Viết một hàm để xử lý từng file: đọc file, xác định các cột cần thiết (có thể dùng tên cột hoặc vị trí tương đối), và trích xuất dữ liệu.
  • Dùng pd.concat để gom tất cả dữ liệu đã trích xuất vào một DataFrame duy nhất.

Ví dụ đơn giản:

Giả sử các file của bạn đều có cột 'Doanh thu' và 'Ngày'.

import pandas as pd
import glob

folder_path = 'duong/dan/toi/cac/file/excel'
all_files = glob.glob(folder_path + "/*.xlsx")

df_list = []

for filename in all_files:
    try:
        df = pd.read_excel(filename)
        # Xử lý để đảm bảo có các cột cần thiết, ví dụ:
        if 'Doanh thu' in df.columns and 'Ngày' in df.columns:
            selected_data = df[['Doanh thu', 'Ngày']]
            df_list.append(selected_data)
        else:
            print(f"Warning: File {filename} missing required columns.")
    except Exception as e:
        print(f"Error reading file {filename}: {e}")

final_df = pd.concat(df_list, ignore_index=True)
print(final_df.head())

Cách này giúp mình tiết kiệm được rất nhiều thời gian và đảm bảo tính chính xác. Mọi người có cách nào hay hơn hoặc gặp khó khăn gì thì cùng thảo luận nhé!

3

Hay quá bạn ơi! Vấn đề này đúng là đau đầu thật. Mình cũng từng vướng phải tình huống tương tự, phải ngồi copy-paste thủ công mệt lử. Bạn có thể chia sẻ chi tiết hơn về thư viện Python bạn dùng để xử lý các cấu trúc file khác nhau không? Ví dụ như cách bạn xử lý trường hợp tên cột bị sai chính tả hoặc thứ tự cột thay đổi chẳng hạn.

1

Bạn cần đăng nhập để trả lời chủ đề này.

Đăng nhập Đăng ký