python 生成表格pdf,要求:有标题,表格要有表头,自动分页后也需要有表头。
时间: 2024-10-22 14:14:31 浏览: 24
Python+PyQt5+Mysql通过QSqlQueryModel实现的QTableView分页显示,表头排序等功能
5星 · 资源好评率100%
在Python中,我们可以利用一些库如`pandas`处理数据并生成PDF,然后结合`tabulate`或`fpdf`等库添加表格样式和表头。以下是基本步骤:
1. **导入必要的库**:
```python
import pandas as pd
from tabulate import tabulate
import fpdf
```
2. **创建或加载数据**:
```python
# 使用pandas DataFrame
data = {
'Name': ['Alice', 'Bob', 'Charlie'],
'Age': [25, 30, 35],
'City': ['New York', 'London', 'Paris']
}
df = pd.DataFrame(data)
```
3. **定义一个函数来生成PDF**:
```python
def create_pdf(pdf, df):
table_data = df.values.tolist()
headers = df.columns.to_list()
# 创建表格,并添加到PDF
pdf.add_page()
pdf.set_auto_page_break(auto=True, margin=10) # 自动分页
pdf.set_font("Arial", size=12) # 设置字体
# 添加表头
pdf.cell(0, 10, txt='Table Header', ln=1, align='C')
pdf.ln(10)
pdf.multi_cell(0, 7, txt=tabulate(headers), border=1)
# 分行写入表格内容
for row in table_data:
pdf.multi_cell(0, 8, txt=tabulate(row), border=1)
pdf.ln()
```
4. **创建PDF文件并添加表格**:
```python
pdf = fpdf.FPDF() # 初始化PDF
create_pdf(pdf, df) # 传入DataFrame和PDF对象
pdf.output('table.pdf') # 保存到指定路径
```
注意:这个例子使用了`fpdf`库,如果你需要更现代的模板化或者更丰富的功能,可以考虑使用`reportlab`或`weasyprint`。不过`fpdf`对于简单的表格需求已经足够。
阅读全文