Chào các bác, dạo này em đang mày mò tự động hóa mấy vụ báo cáo trên diễn đàn mình thấy hay quá. Hôm nay em mạo muội chia sẻ một chút về cách tự động tạo file PDF báo cáo trực tiếp từ dữ liệu Excel bằng Python, dùng thư viện FPDF. Cái này hay ở chỗ là mình có thể tùy chỉnh định dạng, thêm logo, bảng biểu các kiểu con đà điểu luôn.
Dạo trước em cứ phải copy-paste hoặc xuất Excel ra rồi chỉnh sửa thủ công mất cả buổi. Giờ có cái script nhỏ này thì tiện lắm, chỉ cần chạy một phát là có ngay báo cáo PDF đẹp đẽ.
Cách làm cơ bản là:
- Đọc dữ liệu từ file Excel bằng thư viện
pandas. - Sử dụng thư viện
fpdfđể tạo cấu trúc file PDF. - Lặp qua từng dòng dữ liệu trong DataFrame của pandas để thêm vào PDF.
- Tùy chỉnh font chữ, kích thước, màu sắc, thêm hình ảnh (logo công ty chẳng hạn).
Ví dụ đoạn code đơn giản để thêm một bảng dữ liệu vào PDF:
from fpdf import FPDF
import pandas as pd
df = pd.read_excel('du_lieu.xlsx')
pdf = FPDF()
pdf.add_page()
pdf.set_font('Arial', 'B', 16)
pdf.cell(0, 10, 'Bao Cao Hang Ngay', 0, 1, 'C')
pdf.set_font('Arial', '', 10)
for index, row in df.iterrows():
pdf.cell(40, 10, str(row['Cot A']), 1)
pdf.cell(40, 10, str(row['Cot B']), 1)
pdf.ln()
pdf.output('bao_cao.pdf')
Em thấy cái này rất hữu ích cho anh em nào thường xuyên phải làm báo cáo gửi khách hàng hoặc sếp. Bác nào cần code chi tiết hơn hoặc có ý tưởng gì hay ho hơn thì cùng thảo luận nhé!