Menu

Tự động hóa việc trích xuất dữ liệu có điều kiện từ nhiều file Excel với Python

Hàn Phương An 21/03/2026 23:17 109 lượt xem 3 trả lời

Chào các bác, dạo này em đang mày mò dùng Python để xử lý mấy file Excel báo cáo bán hàng. Công việc của em là cần trích xuất dữ liệu từ hàng chục file Excel cùng cấu trúc, nhưng chỉ lấy những dòng có điều kiện nhất định (ví dụ: chỉ lấy dữ liệu của chi nhánh 'Hà Nội' hoặc chỉ lấy các đơn hàng có giá trị trên 1 triệu).

Trước đây em hay dùng Power Query nhưng với lượng file lớn và điều kiện lọc phức tạp, đôi khi nó hơi chậm và khó tùy chỉnh. Em nghĩ đến việc dùng Python và Pandas để làm việc này. Ai đã từng làm qua có thể chia sẻ kinh nghiệm không ạ?

Em hình dung là sẽ viết một script để:

  • Duyệt qua tất cả các file Excel trong một thư mục.
  • Mở từng file, đọc dữ liệu vào Pandas DataFrame.
  • Áp dụng các điều kiện lọc (ví dụ: df[df['ChiNhanh'] == 'Hà Nội']).
  • Gom các DataFrame đã lọc lại thành một DataFrame lớn duy nhất.
  • Xuất kết quả ra một file Excel mới.

Em đang phân vân không biết nên dùng thư viện nào ngoài Pandas để đọc và ghi file Excel cho hiệu quả nhất với nhiều định dạng khác nhau (ví dụ: file .xls, .xlsx). Thư viện openpyxl hay xlrd/xlwt thì có ưu nhược điểm gì khi kết hợp với Pandas ạ?

Rất mong nhận được sự chỉ dẫn từ các cao thủ Python trong Excel!

2

Cái này hay quá bạn ơi! Mình cũng hay phải làm việc với nhiều file báo cáo tương tự. Dùng Python với Pandas đúng là một bước tiến lớn so với Power Query khi xử lý khối lượng dữ liệu lớn và yêu cầu lọc phức tạp.

Bạn đã thử cách dùng glob để gom hết tên file vào một danh sách trước khi lặp qua chưa? Cái này giúp code gọn gàng hơn một chút đấy. Còn về phần lọc, mình hay dùng df.query() hoặc df[ (df['col1'] == 'value1') & (df['col2'] > value2) ] tùy vào độ phức tạp của điều kiện. Không biết bạn đang áp dụng cách nào?

2

Đúng là với khối lượng file lớn và yêu cầu lọc phức tạp, Python với Pandas là một lựa chọn rất hiệu quả. Mình cũng từng gặp tình huống tương tự và thấy nó linh hoạt hơn Power Query nhiều.

Bạn đã thử dùng thư viện glob để tìm tất cả các file Excel trong một thư mục chưa? Nó giúp gom tên file vào một list rất gọn gàng. Còn về phần lọc, bạn dùng cách nào vậy? Mình hay dùng df.query() cho các điều kiện đơn giản, còn với điều kiện phức tạp hơn thì kết hợp các biểu thức logic với nhau.

3

Hay quá bạn ơi! Mình cũng đang đau đầu với việc gom dữ liệu từ nhiều file đây. Dùng Python với Pandas đúng là giải pháp tuyệt vời cho những bài toán phức tạp như thế này.

Bạn có thể chia sẻ thêm về cách bạn thiết lập vòng lặp để đọc từng file và cách bạn áp dụng điều kiện lọc không? Mình tò mò muốn biết bạn xử lý trường hợp tên cột có thể khác nhau giữa các file như thế nào nữa.

5

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

Đăng nhập Đăng ký