Chào mọi người,
Dạo này mình có làm việc nhiều với việc xuất báo cáo từ Excel ra file PDF để gửi cho khách hàng. Thay vì làm thủ công từng file, mình đã tìm hiểu và áp dụng Python để tự động hóa quá trình này. Hôm nay mình muốn chia sẻ với mọi người một chút về cách làm cơ bản.
Chúng ta sẽ sử dụng thư viện reportlab để tạo PDF và pandas để đọc dữ liệu Excel.
Các bước thực hiện chính:
- Cài đặt thư viện:
pip install pandas reportlab - Đọc dữ liệu Excel bằng pandas:
df = pd.read_excel('du_lieu.xlsx') - Khởi tạo đối tượng PDF và thêm nội dung.
- Lặp qua các dòng dữ liệu và ghi 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
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), '#d3d3d3'),
('TEXTCOLOR',(0,0),(-1,0), '#000000'),
('ALIGN', (0,0), (-1,-1), 'CENTER'),
('FONTNAME', (0,0), (-1,0), 'Helvetica-Bold'),
('BOTTOMBORDER', (0,0), (-1,0), 1, '#000000'),
('GRID', (0,0), (-1,-1), 1, '#000000')
]))
story = []
story.append(table)
doc.build(story)
print('Đã tạo xong bao_cao.pdf!')Đây mới chỉ là những bước cơ bản nhất. Mọi người có thể tùy chỉnh thêm nhiều thứ như thêm biểu đồ, header, footer, thay đổi font chữ, màu sắc... tùy theo nhu cầu. Nếu ai có kinh nghiệm hoặc muốn thảo luận sâu hơn về các thư viện PDF khác như FPDF hay các kỹ thuật nâng cao hơn, hãy cùng chia sẻ nhé!