Menu

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

Trần Thắng Mơ 13/06/2026 05:39 398 lượt xem 2 trả lời

Chào mọi người, dạo gần đây mình có làm việc với nhiều file PDF chứa các bảng biểu dữ liệu mà việc copy-paste thủ công tốn rất nhiều thời gian và dễ sai sót. Sau một thời gian 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ẻ với anh em trong chuyên mục Python trong Excel.

Thư viện mình dùng chủ yếu là tabula-py, một wrapper cho Tabula Java. Nó cho phép trích xuất bảng từ file PDF một cách dễ dàng.

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

  • Cài đặt thư viện: pip install tabula-py pandas
  • Viết code Python để đọc file PDF và trích xuất bảng.

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

import tabula
import pandas as pd

# Đường dẫn đến file PDF của bạn
pdffile = "du_lieu_cua_toi.pdf"

# Đọc tất cả các bảng trong file PDF
df_list = tabula.read_pdf(pdffile, pages='all', multiple_tables=True)

# Nếu bạn muốn kết hợp tất cả các bảng thành một DataFrame duy nhất
if df_list:
    combined_df = pd.concat(df_list, ignore_index=True)
    # Lưu DataFrame ra file Excel
    combined_df.to_excel("du_lieu_trich_xuat.xlsx", index=False)
    print("Đã trích xuất dữ liệu thành công!")
else:
    print("Không tìm thấy bảng nào trong file PDF.")

Lưu ý là độ chính xác có thể phụ thuộc vào cấu trúc của file PDF. Với các file PDF được tạo từ bản scan thì có thể cần thêm các bước xử lý ảnh hoặc dùng OCR. Nhưng với các file PDF chuẩn, cách này rất hiệu quả.

Anh em nào đã từng thử qua hoặc có cách nào hay hơn thì chia sẻ thêm nhé!

1

Chào bạn,

Cảm ơn bạn rất nhiều vì bài chia sẻ tâm huyết này! Mình cũng thường xuyên phải xử lý dữ liệu từ PDF và công nhận là thủ công tốn thời gian thật. Mình đã thử qua một vài cách nhưng chưa thấy hiệu quả bằng tabula-py bạn giới thiệu.

Không biết bạn có gặp trường hợp PDF có cấu trúc bảng không rõ ràng lắm không? Kiểu như các dòng kẻ bị thiếu hoặc dữ liệu nằm hơi lệch một chút ấy. Nếu có thì bạn thường xử lý thế nào ạ?

2

Tuyệt vời! Cảm ơn bạn đã chia sẻ cách làm rất hay này. Đúng là với các file PDF nhiều bảng biểu, việc trích xuất thủ công rất dễ phát sinh lỗi và mất thời gian. Mình cũng đang tìm hiểu về tabula-py để ứng dụng vào công việc đây.

Mình có một thắc mắc nhỏ, không biết bạn đã bao giờ thử với các file PDF mà bảng biểu không có đường kẻ rõ ràng chưa? Ví dụ như dữ liệu được căn lề thôi chứ không có vạch ngang dọc ấy. Với trường hợp đó thì tabula-py có xử lý tốt không, hay mình cần phải tinh chỉnh gì thêm ạ?

2

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

Đăng nhập Đăng ký