Python 我怎样才能把我所有的字典列表都写成PDF格式?

Python 我怎样才能把我所有的字典列表都写成PDF格式?,python,tkinter,Python,Tkinter,我正在开发一个应用程序,以便能够以PDF格式列出具有开放费用的客户。代码包括输入电子表格、检查尚未付款的客户并将其保存在词典中,然后将其保存为PDF。现在的情况是,它在PDF中只列出了一个客户 代码如下: #/usr/bin/env python #-*-编码:utf-8-*- 从未来导入unicode文字 从tkinter进口* 从tkinter导入ttk 从tkinter导入消息框 从reportlab.pdfgen导入画布 从reportlab.lib.pagesizes导入A4 导入op

我正在开发一个应用程序,以便能够以PDF格式列出具有开放费用的客户。代码包括输入电子表格、检查尚未付款的客户并将其保存在词典中,然后将其保存为PDF。现在的情况是,它在PDF中只列出了一个客户

代码如下:

#/usr/bin/env python
#-*-编码:utf-8-*-
从未来导入unicode文字
从tkinter进口*
从tkinter导入ttk
从tkinter导入消息框
从reportlab.pdfgen导入画布
从reportlab.lib.pagesizes导入A4
导入openpyxl
导入操作系统
pastaApp=os.path.dirname(_文件__)
def createPDF():
#打开电子表格并获取上次付款的状态。
wb=openpyxl.load_工作簿('C:/temp/cobranca.xlsx')
工作表=工作表['Sheet1']
lastCol=sheet.max\u列
#检查每个客户的付款状态。
UNPAIDEMBERS={}
客户=[]
月份=[]
电子邮件=[]
对于范围内的r(2,sheet.max_行+1):
对于范围(3,lastCol+1)内的c:
付款=表.单元格(行=r,列=c).值
如果付款!='好的:
client=sheet.cell(行=r,列=1).value
email=sheet.cell(行=r,列=2).value
月=表.单元格(行=1,列=c).值
clients.append(客户端)
月。追加(月)
电子邮件。附加(电子邮件)
Unpaid成员[客户端]=电子邮件
#打印('行:',r',列:',c',客户端:',客户端,'电子邮件:',电子邮件,'月份:',月份)
打印('已成功创建词典')
cnv=canvas.canvas(pastaApp+“\\test.pdf”,页面大小=A4)
cnv.抽绳(10800,“开放费”)
cnv.抽绳(130800,“-客户/月/电子邮件”)
cnv.抽绳(10780,客户)
cnv.抽绳(170780,月)
cnv.抽绳(350780,电子邮件)
cnv.save()
root=Tk()
root.title(“创建PDF”)
btn_createPDF=按钮(root,text=“Check”,command=createPDF)
btn_createPDF.pack(side=“left”,padx=10)
root.mainloop()

这是一个电子表格模型:

您的代码只保存了一条记录:

cnv.drawString(10780,客户端)
cnv.抽绳(170780,月)
cnv.抽绳(350780,电子邮件)
要保存所有记录,请使用:

y=780
对于客户、月份、邮政编码的电子邮件(客户、月份、电子邮件):
cnv.抽绳(10,y,客户)
cnv.抽绳(170年,月)
cnv.抽绳(350,y,电子邮件)
y-=20

请注意,我的代码不适合页面大小。

acw1668,非常感谢,它对我帮助很大。我注意到,如果有更多的客户,PDF不会扩展到第二页,而是会被删除。我在回答的最后已经提到了这个问题。是的,但即使我删除了大小,它也会继续删除。