0
点赞
收藏
分享

微信扫一扫

Fpdf python做表格

FPDF Python做表格

在Python中,我们可以使用FPDF库来创建PDF文件。FPDF是一个纯Python的库,用于创建PDF文件,可以生成表格、图形和文本。本文将介绍如何使用FPDF库来创建表格,并提供代码示例。

准备工作

在开始之前,我们需要安装FPDF库。可以使用pip来安装FPDF库,打开命令行窗口并执行以下命令:

pip install fpdf

安装完成后,我们可以开始编写代码。

创建PDF文件

首先,我们需要导入FPDF库,并创建一个PDF对象。

from fpdf import FPDF

pdf = FPDF()

接下来,我们可以设置PDF文件的属性,例如页面大小和页面方向。

pdf.set_auto_page_break(auto=True, margin=15)
pdf.add_page(orientation="L", format="A4")

在上面的代码中,我们使用set_auto_page_break()方法来设置自动分页,并传入True来启用自动分页。margin参数用于设置页面边距。

然后,我们使用add_page()方法来添加一个新页面。orientation参数用于设置页面方向,可以是"P"(纵向)或"L"(横向)。format参数用于设置页面大小,例如"A4"

创建表格

在创建表格之前,我们需要定义表格的列和行。我们可以使用列表来定义列的宽度、列的标题和行的数据。

column_widths = [40, 60, 80]
column_titles = ["Name", "Age", "Country"]
rows_data = [
    ["John Doe", "25", "USA"],
    ["Jane Smith", "30", "Canada"],
    ["David Lee", "35", "UK"]
]

在上面的代码中,column_widths是一个包含列宽度的列表,column_titles是一个包含列标题的列表,rows_data是一个包含行数据的列表。

接下来,我们可以创建表格并设置表格的属性。

pdf.set_font("Arial", "B", 12)
pdf.cell(column_widths[0], 10, column_titles[0], 1)
pdf.cell(column_widths[1], 10, column_titles[1], 1)
pdf.cell(column_widths[2], 10, column_titles[2], 1)
pdf.ln()

pdf.set_font("Arial", "", 12)
for row in rows_data:
    pdf.cell(column_widths[0], 10, str(row[0]), 1)
    pdf.cell(column_widths[1], 10, str(row[1]), 1)
    pdf.cell(column_widths[2], 10, str(row[2]), 1)
    pdf.ln()

在上面的代码中,我们首先设置表格的字体样式,使用set_font()方法来设置字体,"Arial"是字体名称,"B"表示粗体,12表示字体大小。

然后,我们使用cell()方法来创建单元格,传入单元格的宽度、高度、内容和边框样式。ln()方法用于换行。

保存PDF文件

最后,我们可以保存PDF文件。

pdf.output("table.pdf")

在上面的代码中,我们使用output()方法来保存PDF文件,传入文件名作为参数。

完整代码

下面是完整的代码示例:

from fpdf import FPDF

pdf = FPDF()

pdf.set_auto_page_break(auto=True, margin=15)
pdf.add_page(orientation="L", format="A4")

column_widths = [40, 60, 80]
column_titles = ["Name", "Age", "Country"]
rows_data = [
    ["John Doe", "25", "USA"],
    ["Jane Smith", "30", "Canada"],
    ["David Lee", "35", "UK"]
]

pdf.set_font("Arial", "B", 12)
pdf.cell(column_widths[0], 10, column_titles[0], 1)
pdf.cell(column_widths[1], 10, column_titles[1], 1)
pdf.cell(column_widths[2], 10, column_titles[2], 1)
pdf.ln()

pdf.set_font("Arial", "", 12)
for row in rows_data:
    pdf.cell(column_widths[0], 10, str(row[0]), 1)
    pdf.cell(column_widths[1], 10, str(row[1]), 1)
    pdf.cell(column_widths[2], 10, str(row[2]), 1
举报

相关推荐

0 条评论