Menu

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

Lý Thanh Tiểu 21/03/2026 14:51 210 lượt xem 1 trả lời

Chào mọi người,

Dạo gần đây mình có một bài toán là cần tổng hợp dữ liệu từ rất nhiều file Excel (hàng trăm file) đặt trong một thư mục. Việc copy-paste thủ công thực sự tốn rất nhiều thời gian và dễ sai sót. Sau một hồi tìm hiểu, mình đã tìm ra cách dùng Python để tự động hóa việc này, khá hiệu quả nên muốn chia sẻ lại cho anh em trong diễn đàn.

Ý tưởng là chúng ta sẽ viết một script Python để duyệt qua tất cả các file Excel trong một thư mục chỉ định, sau đó trích xuất một hoặc nhiều cột dữ liệu mong muốn từ mỗi file và ghép chúng lại vào một file Excel duy nhất. Cách này đặc biệt hữu ích khi bạn cần tổng hợp báo cáo từ các chi nhánh, các phòng ban khác nhau.

Các bước thực hiện cơ bản:

  • Cài đặt thư viện pandasopenpyxl nếu chưa có: pip install pandas openpyxl
  • Sử dụng module os để lấy danh sách các file Excel trong thư mục.
  • Sử dụng pandas.read_excel() để đọc dữ liệu từ từng file.
  • Lưu trữ dữ liệu đã trích xuất vào một danh sách (list).
  • Cuối cùng, dùng pandas.concat() để ghép tất cả dữ liệu lại và pandas.DataFrame.to_excel() để lưu ra file mới.

Ví dụ đơn giản về cách đọc dữ liệu từ một file và trích xuất cột 'Doanh thu':

import pandas as pd

file_path = 'du_lieu_chi_nhanh_A.xlsx'
df = pd.read_excel(file_path)

data_doanh_thu = df['Doanh thu']
print(data_doanh_thu)

Sau đó, chúng ta sẽ lặp qua tất cả các file và gộp lại. Chi tiết hơn về cách xử lý nhiều file và các trường hợp file có cấu trúc khác nhau, mình sẽ chia sẻ trong bài viết tiếp theo hoặc nếu có ai cần gấp thì có thể inbox mình nhé.

Hy vọng chia sẻ này hữu ích cho các bạn đang làm việc với nhiều file Excel!

2

Hay quá bạn ơi! Mình cũng đang vật lộn với việc tổng hợp dữ liệu từ cả đống file Excel đây. Python nghe có vẻ là giải pháp ngon lành đó.

Cho mình hỏi thêm chút nhé, bạn dùng thư viện nào của Python để đọc file Excel vậy? Và script của bạn có xử lý được trường hợp các file có cấu trúc cột khác nhau không?

4

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

Đăng nhập Đăng ký