Menu

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

Võ Chính Vy 11/06/2026 21:16 213 lượt xem 1 trả lời

Chào mọi người, dạo này mình có dự án cần trích xuất dữ liệu từ nhiều file Excel khác nhau và lưu lại dưới dạng file CSV để tiện cho việc xử lý tiếp bằng các công cụ khác. Ban đầu mình định làm thủ công nhưng với số lượng file lên đến hàng trăm thì không khả thi.

Sau khi tìm hiểu, mình quyết định dùng Python để tự động hóa việc này. Thư viện pandas là một công cụ cực kỳ mạnh mẽ cho việc này.

Các bước cơ bản như sau:

  • Cài đặt thư viện pandas: pip install pandas openpyxl (cần openpyxl để đọc file .xlsx).
  • Viết script Python để duyệt qua các file Excel trong một thư mục.
  • Với mỗi file Excel, đọc dữ liệu bằng pandas.read_excel().
  • Lưu dữ liệu đó sang file CSV bằng phương thức .to_csv().

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

import pandas as pd
import os

folder_path = 'duong_dan_den_thu_muc_excel'
output_folder = 'duong_dan_den_thu_muc_csv'

if not os.path.exists(output_folder):
    os.makedirs(output_folder)

for filename in os.listdir(folder_path):
    if filename.endswith('.xlsx') or filename.endswith('.xls'):
        file_path = os.path.join(folder_path, filename)
        try:
            df = pd.read_excel(file_path)
            # Đổi tên file CSV tương ứng
            csv_filename = os.path.splitext(filename)[0] + '.csv'
            csv_path = os.path.join(output_folder, csv_filename)
            df.to_csv(csv_path, index=False, encoding='utf-8')
            print(f'Đã chuyển đổi: {filename} -> {csv_filename}')
        except Exception as e:
            print(f'Lỗi khi xử lý {filename}: {e}')

Cách này giúp mình tiết kiệm rất nhiều thời gian và giảm thiểu sai sót. Mọi người có cách nào hay hơn hoặc gặp khó khăn gì khi dùng Python với Excel thì cùng thảo luận nhé!

1

Hay quá bạn ơi! Mình cũng đang vật lộn với việc xử lý nhiều file Excel và việc chuyển sang CSV để dùng tool khác là một ý tưởng tuyệt vời.

Bạn có thể chia sẻ thêm về cách bạn xử lý trường hợp các file Excel có cấu trúc cột không giống nhau không? Dùng pandas có cách nào để tự động nhận diện và xử lý các trường hợp này một cách linh hoạt không?

Cảm ơn bạn đã chia sẻ nhé!

2

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

Đăng nhập Đăng ký