Menu

Tự động hóa tạo file PDF từ dữ liệu Excel bằng Python

Vương Khiêm Đài 20/03/2026 02:55 226 lượt xem 2 trả lời

Chào các bác, dạo này em thấy nhiều bài viết về tự động hóa trong Excel với Python hay quá, nên cũng muốn đóng góp một chút kinh nghiệm cá nhân.

Công việc của em thỉnh thoảng cần xuất dữ liệu từ Excel ra file PDF để gửi cho khách hàng hoặc lưu trữ. Làm thủ công thì mất thời gian, mà còn dễ sai sót. Em đã tìm tòi và phát hiện ra một cách khá hay để tự động hóa việc này bằng Python.

Về cơ bản, chúng ta sẽ dùng thư viện pandas để đọc dữ liệu từ file Excel, sau đó dùng thư viện reportlab để tạo file PDF.

Các bước chính sẽ như sau:

  • Cài đặt các thư viện cần thiết: pip install pandas reportlab
  • Đọc dữ liệu từ file Excel bằng pandas.read_excel()
  • Khởi tạo đối tượng PDF bằng reportlab.platypus.SimpleDocTemplate
  • Tạo các phần tử cho PDF (văn bản, bảng biểu)
  • Thêm bảng biểu từ dữ liệu DataFrame của pandas vào PDF
  • Lưu file PDF

Ví dụ đơn giản để tạo một bảng trong PDF:

from reportlab.lib.pagesizes import letter
from reportlab.platypus import SimpleDocTemplate, Table, TableStyle
from reportlab.lib import colors
import pandas as pd

df = pd.read_excel('du_lieu.xlsx')
data = [df.columns.tolist()] + df.values.tolist()

doc = SimpleDocTemplate('bao_cao.pdf', pagesize=letter)

table = Table(data)
table.setStyle(TableStyle([
    ('BACKGROUND', (0, 0), (-1, 0), colors.grey),
    ('TEXTCOLOR', (0, 0), (-1, 0), colors.whitesmoke),
    ('ALIGN', (0, 0), (-1, -1), 'CENTER'),
    ('FONTNAME', (0, 0), (-1, 0), 'Helvetica-Bold'),
    ('BOTTOMPADDING', (0, 0), (-1, 0), 12),
    ('BACKGROUND', (0, 1), (-1, -1), colors.beige),
    ('GRID', (0, 0), (-1, -1), 1, colors.black)
]))

story = []
story.append(table)
doc.build(story)
print('Đã tạo file bao_cao.pdf thành công!')

Cách này giúp em tiết kiệm được kha khá thời gian và giảm thiểu sai sót khi tạo báo cáo PDF. Các bác nào có kinh nghiệm hoặc có cách nào hay hơn thì chia sẻ thêm cho em học hỏi với ạ!

4

Cái này hay quá bạn ơi! Mình cũng đang vật lộn với việc xuất báo cáo định kỳ từ Excel ra PDF, thủ công mệt thật.

Bạn có thể chia sẻ chi tiết hơn về cách dùng thư viện reportlab không? Cụ thể là làm sao để tùy chỉnh định dạng bảng, thêm logo, hay header/footer cho file PDF nhỉ? Mình đang rất tò mò muốn thử nghiệm.

Cảm ơn bạn đã chia sẻ kinh nghiệm quý báu!

1

Cái này hay quá bạn ơi! Mình cũng đang vật lộn với việc xuất báo cáo định kỳ từ Excel ra PDF, thủ công mệt thật.

Bạn có thể chia sẻ chi tiết hơn về cách dùng thư viện reportlab không? Cụ thể là làm sao để tùy chỉnh định dạng bảng, thêm logo, hay header/footer cho file PDF nhỉ? Mình đang rất tò mò muốn thử nghiệm.

Cảm ơn bạn đã chia sẻ kinh nghiệm quý báu!

2

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

Đăng nhập Đăng ký