使用 Python 的 openpyxl 库读取 Excel 文件,并使用 reportlab 库生成 PDF 文件,可以实现将 Excel 表格中指定列的数据,以每个单元格对应一个 PDF 文件的方式保存到 PDF 文件中。

首先,你需要安装这两个库:

pip install openpyxl
pip install reportlab

然后,可以使用以下代码实现你的需求:

from openpyxl import load_workbook
from reportlab.lib.pagesizes import landscape
from reportlab.pdfgen import canvas
from reportlab.lib.styles import getSampleStyleSheet, ParagraphStyle
from reportlab.lib.units import mm
from reportlab.platypus import Paragraph
from reportlab.lib import colors

# 加载 Excel 文件
workbook = load_workbook('your_excel_file.xlsx')
sheet = workbook['sheet1']

# 获取列名为'贺卡内容'的列索引
column_index = None
for column in sheet.iter_cols():
    if column[0].value == '贺卡内容':
        column_index = column[0].column
        break
if column_index is None:
    raise ValueError('找不到列名为'贺卡内容'的列')

# 获取列名为'运单号'的列数据
pdf_file_names = []
for cell in sheet[column_index][1:]:
    pdf_file_names.append(cell.value)

# 创建 PDF 文件
pdf = canvas.Canvas('output.pdf', pagesize=landscape((1450*mm, 1000*mm)))

# 设置样式
styles = getSampleStyleSheet()
style = styles['BodyText']
style.alignment = 1  # 上下居中和左右居中
style.fontSize = 12.75
style.fontName = 'SimSun'
style.textColor = colors.black
style.leading = 14  # 行间距
style.spaceAfter = 0  # 段后距离
style.spaceBefore = 0  # 段前距离
style.spaceBetween = 0  # 段间距
style.fontName = 'SimSun-Bold'  # 设置字体加粗

# 根据列名为'运单号'的列数据生成 PDF 文件
for file_name in pdf_file_names:
    pdf.showPage()
    pdf.setFont('SimSun-Bold', 12.75)
    pdf.drawString(10*mm, 290*mm, file_name)

pdf.save()

请注意替换代码中的your_excel_file.xlsx为你的 Excel 文件路径。生成的 PDF 文件将保存为output.pdf

这段代码会遍历 Excel 文件中列名为'贺卡内容'的数据,并以每个单元格的数据作为文件名在 PDF 文件中生成一个页面。页面尺寸为高度 1000mm,宽度 1450mm。数据的格式样式为字体为宋体,粗细为加粗,字号大小为 12.75,文字对齐方式为上下居中和左右居中。


原文地址: https://www.cveoy.top/t/topic/phkB 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录