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()
我来回答