Menu

Tự động hóa xử lý dữ liệu Excel với Python: Gom nhiều file thành một file duy nhất

Thạch Giang Quyên 14/06/2026 18:40 369 lượt xem 3 trả lời

Chào các anh em, dạo này mình làm báo cáo có nhiều file Excel nhỏ lẻ, mỗi file chứa dữ liệu của một chi nhánh. Việc tổng hợp thủ công rất mất thời gian và dễ sai sót. Mình tìm tòi và phát hiện ra một cách dùng Python để tự động hóa việc này, muốn chia sẻ lại cho mọi người tham khảo.

Ý tưởng là mình sẽ viết một script Python để duyệt qua tất cả các file Excel trong một thư mục, sau đó đọc dữ liệu từ mỗi file và ghi vào một sheet mới trong một file Excel tổng hợp duy nhất.

Các bước thực hiện khá đơn giản, chủ yếu sử dụng thư viện pandasos:

  • Sử dụng os.listdir() để lấy danh sách tất cả các file trong thư mục chỉ định.
  • Lọc ra các file có đuôi .xlsx hoặc .xls.
  • Dùng pd.read_excel() để đọc dữ liệu từ từng file.
  • Tạo một pd.ExcelWriter để ghi dữ liệu vào file tổng hợp.
  • Với mỗi file đọc được, ghi dữ liệu vào một sheet mới trong file tổng hợp, tên sheet có thể là tên file gốc để dễ phân biệt.

Ví dụ đoạn code cơ bản:

import pandas as pd
import os

folder_path = 'duong_dan_den_thu_muc_excel'
output_file = 'tong_hop_du_lieu.xlsx'

excel_files = [f for f in os.listdir(folder_path) if f.endswith(('.xlsx', '.xls'))]

with pd.ExcelWriter(output_file) as writer:
    for file in excel_files:
        file_path = os.path.join(folder_path, file)
        try:
            df = pd.read_excel(file_path)
            # Lấy tên file không có đuôi để làm tên sheet
            sheet_name = os.path.splitext(file)[0]
            df.to_excel(writer, sheet_name=sheet_name, index=False)
            print(f"Đã xử lý file: {file}")
        except Exception as e:
            print(f"Lỗi khi xử lý file {file}: {e}")

print(f"Hoàn thành tổng hợp dữ liệu vào file: {output_file}")

Cách này giúp mình tiết kiệm rất nhiều thời gian, đặc biệt khi số lượng file cần xử lý lên đến hàng chục, thậm chí hàng trăm. Hy vọng chia sẻ này hữu ích cho các bạn đang gặp tình huống tương tự.

4

Hay quá bạn ơi! Mình cũng đang đau đầu với việc gom nhiều file Excel đây. Python đúng là cứu cánh cho mấy vụ này. Bạn có thể chia sẻ cụ thể hơn về cách bạn đọc dữ liệu từ từng file không? Mình đang dùng pandas nhưng đôi khi gặp vấn đề với các định dạng file khác nhau.

2

Tuyệt vời! Mình cũng hay phải xử lý nhiều file Excel lẻ tẻ lắm, cái vụ gom thủ công đúng là tốn thời gian thật. Python với pandas thì đúng là "trùm" cho mấy tác vụ này rồi.

Bạn nói về việc đọc dữ liệu, không biết bạn có gặp khó khăn gì với các định dạng file Excel cũ (.xls) không? Hay script của bạn chỉ chạy tốt với .xlsx thôi? Chia sẻ thêm kinh nghiệm vụ này nha!

1
Hay quá bạn ơi! Mình cũng đang đau đầu với việc gom nhiều file Excel đây. Python đúng là cứu cánh cho mấy vụ này. Bạn có thể chia sẻ cụ thể hơn về cách bạn đọc dữ liệu từ từng file không? Mình đang dùng pandas nhưng đôi khi gặp vấn đề với các định dạng file khác nhau.
5

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

Đăng nhập Đăng ký