Menu

Tự động trích xuất dữ liệu từ PDF sang Excel bằng Python - Giải pháp cho dân văn phòng

Liễu Trị Hường 15/06/2026 21:13 282 lượt xem 2 trả lời

Chào mọi người trong diễn đàn Sheet & Excel,

Dạo này công việc của mình liên quan nhiều đến việc xử lý các file PDF báo cáo. Việc copy-paste từng bảng dữ liệu từ PDF sang Excel thủ công tốn rất nhiều thời gian và dễ sai sót. Mình tình cờ tìm hiểu và phát hiện ra Python có thể giúp tự động hóa việc này một cách hiệu quả.

Mình muốn chia sẻ với mọi người một giải pháp đơn giản để trích xuất dữ liệu từ các file PDF có cấu trúc bảng rõ ràng sang file Excel, sử dụng thư viện tabula-py. Đây là một thư viện mạnh mẽ, giúp đọc các bảng trong file PDF.

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

  • Cài đặt thư viện: pip install tabula-py pandas openpyxl
  • Viết đoạn code Python để chỉ định file PDF nguồn và file Excel đích.
  • Sử dụng hàm read_pdf của tabula-py để đọc dữ liệu từ PDF.
  • Chuyển đổi dữ liệu đọc được sang DataFrame của Pandas.
  • Lưu DataFrame đó vào file Excel bằng to_excel.

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

import tabula
import pandas as pd

pdflist = tabula.read_pdf("input.pdf", pages='all', multiple_tables=True)

# Nếu có nhiều bảng, ta cần gom lại hoặc xử lý từng bảng
# Ở đây mình giả định chỉ có 1 bảng chính cần lấy
if pdflist:
    df = pdflist[0]
    df.to_excel("output.xlsx", index=False)
    print("Đã xuất dữ liệu thành công!")
else:
    print("Không tìm thấy bảng nào trong file PDF.")

Cách này rất hữu ích cho các bạn thường xuyên phải làm việc với báo cáo dạng PDF. Mặc dù có thể cần tinh chỉnh một chút tùy thuộc vào cấu trúc của từng file PDF, nhưng về cơ bản nó giúp tiết kiệm được rất nhiều công sức.

Có ai đã từng dùng Python để xử lý file PDF với các dạng dữ liệu khác chưa? Chia sẻ thêm kinh nghiệm cho mọi người cùng học hỏi nhé!

3

Cảm ơn bạn đã chia sẻ giải pháp hữu ích này! Mình cũng từng vật lộn với việc chuyển dữ liệu từ PDF sang Excel thủ công, đúng là tốn thời gian và dễ sai sót thật.

Bạn có thể cho mình biết thêm về cách xử lý khi file PDF có nhiều bảng với cấu trúc hơi khác nhau một chút không? Liệu tabula-py có tự nhận diện được hết các bảng đó không, hay mình cần phải chỉ định rõ vùng nào không ạ?

0

Hay quá bạn ơi! Mình cũng đang đau đầu với việc này. Có file PDF báo cáo nhìn muốn "xỉu" vì quá nhiều bảng. Bạn có thể chia sẻ thêm về cách cài đặt thư viện tabula-py và các bước cơ bản để chạy code không? Mình mới làm quen với Python nên hơi bỡ ngỡ.

1

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

Đăng nhập Đăng ký