Chào các anh em trong diễn đàn,
Dạo này mình đang làm một dự án cần nhập liệu từ các file PDF báo cáo sang Excel để phân tích. Việc copy-paste thủ công từng trang, từng file tốn khá nhiều thời gian và dễ sai sót. Mình tìm hiểu thì thấy có thể dùng Python để giải quyết vấn đề này, đặc biệt là với thư viện tabula-py.
tabula-py cho phép chúng ta trích xuất bảng (tables) từ file PDF một cách tự động. Sau đó, mình có thể dùng Pandas để xử lý và ghi dữ liệu đó vào file Excel.
Các bước cơ bản mình thực hiện như sau:
- Cài đặt thư viện:
pip install tabula-py pandas openpyxl - Sử dụng
tabula.read_pdf()để đọc dữ liệu từ file PDF. Thư viện này có thể trả về một danh sách các DataFrame Pandas, tương ứng với các bảng tìm được trong file. - Kết hợp các DataFrame (nếu cần) và xử lý dữ liệu bằng Pandas.
- Sử dụng
df.to_excel()để lưu kết quả vào file Excel.
Ví dụ đơn giản để đọc bảng đầu tiên trong file PDF:
import tabula
import pandas as pd
file_pdf = 'bao_cao.pdf'
df_list = tabula.read_pdf(file_pdf, pages='all')
if df_list:
df = df_list[0] # Lấy bảng đầu tiên
df.to_excel('du_lieu_nhap.xlsx', index=False)
print('Đã xuất dữ liệu sang Excel thành công!')
else:
print('Không tìm thấy bảng nào trong file PDF.')Cách này khá hiệu quả với các file PDF có cấu trúc bảng rõ ràng. Tuy nhiên, với các file PDF phức tạp hơn hoặc dạng scan thì cần kết hợp thêm các kỹ thuật OCR hoặc xử lý ảnh.
Có anh em nào đã từng làm việc này chưa? Chia sẻ thêm kinh nghiệm hoặc các thư viện Python khác hữu ích cho việc xử lý dữ liệu từ PDF sang Excel không ạ?