鱼C论坛

 找回密码
 立即注册
查看: 3787|回复: 3

求助帮忙补充下程序--从excel提取数据写入pdf

[复制链接]
发表于 2021-5-19 17:37:31 | 显示全部楼层 |阅读模式
20鱼币
要解决的问题:

有两个文件:已经存在的pdf文件 和 已经存在的excel文件。excel文件只有一列N行。pdf文件的页数也是N,和excel行数一样。

要写个python程序,把excel里的第m行的数据(数字型)写到pdf对应的第m页的固定位置。写完后自动生成新的pdf文件。

我从网上学到的经验,只能调取excel表格里第1行1列的单元格数据,写入pdf的第1页。后续的不太会了。辛苦牛人帮个忙。谢谢

现有的程序如下:


from PyPDF2 import PdfFileWriter, PdfFileReader
import io
from reportlab.pdfgen import canvas
from reportlab.lib.pagesizes import letter
from openpyxl import load_workbook
from openpyxl import Workbook
import datetime

wb2 = load_workbook("C:\\Users\\versa\\Desktop\\测试.xlsx")
ws = wb2.active
neirong = str(ws['A1'].value)

packet = io.BytesIO()
# 使用Reportlab创建一个新的PDF
can = canvas.Canvas(packet, pagesize=letter)
can.drawString(10, 100, neirong)
can.save()
#buffer从偏移0开始
packet.seek(0)
new_pdf = PdfFileReader(packet)
#读取已有的PDF
existing_pdf = PdfFileReader(open("C:\\Users\\versa\\Desktop\\W-1.pdf", "rb"))
output = PdfFileWriter()
#
page = existing_pdf.getPage(0)
page.mergePage(new_pdf.getPage(0))

      
page1 = existing_pdf.getPage(1)
page1.mergePage(new_pdf.getPage(1))

output.addPage(page)
output.addPage(page1)

# 最后,向目标的pdf写出
outputStream = open("C:\\Users\\versa\\Desktop\\W-1-SKU.pdf", "wb")
output.write(outputStream)
outputStream.close()

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2021-5-19 17:42:44 | 显示全部楼层
补充一句:
将表格第1行1列的数据,写入pdf第一页的固定位置。将表格第2行1列的数据,写入pdf第二页的固定位置....以此类推。直到将表格最后一行第一列的数据,写到pdf最后一页的固定位置。生成新pdf文件。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2021-5-20 19:31:07 | 显示全部楼层
顶贴
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2021-5-27 19:32:50 | 显示全部楼层
貌似沉了。。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-9-21 09:29

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表