Chào mọi người,
Dạo gần đây mình có tham gia một dự án yêu cầu xử lý một lượng lớn báo cáo PDF. Việc copy-paste thủ công từng trang sang Excel tốn rất nhiều thời gian và dễ sai sót. Sau một hồi tìm kiếm, mình đã tìm ra một giải pháp khá hay ho bằng Python để tự động hóa việc này, và muốn chia sẻ lại cho anh em trong diễn đàn.
Công cụ chính mình sử dụng là thư viện PyPDF2 để đọc file PDF và thư viện pandas để xử lý, xuất dữ liệu ra file Excel.
Các bước cơ bản:
- Cài đặt thư viện:
pip install PyPDF2 pandas openpyxl - Đọc nội dung từng trang PDF.
- Trích xuất các bảng hoặc đoạn văn bản cần thiết.
- Sử dụng pandas để tổ chức dữ liệu thành DataFrame.
- Lưu DataFrame ra file Excel.
Ví dụ đoạn code đơn giản để đọc text từ PDF:
import PyPDF2
def extract_text_from_pdf(pdf_path):
text = ''
with open(pdf_path, 'rb') as file:
reader = PyPDF2.PdfReader(file)
for page_num in range(len(reader.pages)):
page = reader.pages[page_num]
text += page.extract_text()
return text
# Sử dụng:
# pdf_file = 'bao_cao.pdf'
# extracted_text = extract_text_from_pdf(pdf_file)
# print(extracted_text)
Việc trích xuất bảng thì phức tạp hơn một chút, có thể cần kết hợp thêm các thư viện như tabula-py hoặc xử lý chuỗi regex tùy thuộc vào cấu trúc file PDF. Tuy nhiên, với những file có cấu trúc tương đối chuẩn, việc này hoàn toàn khả thi.
Anh em nào đã từng gặp vấn đề tương tự hoặc có kinh nghiệm xử lý file PDF bằng Python, chia sẻ thêm nhé!