[英]Generate pdf with reportlab using python
我正在通过 ReportLab 生成 PDF 文件,输入文件在 excel 中,如果单元格值作为空白在 pdf 中生成为NONE 。 我想将 NONE 值转换为空白。
根据我的代码对此的任何解决方案。 这个 Pdf 通过 reportlab 使用 python 构建
代码
import openpyxl
from reportlab.pdfgen import canvas
wb = openpyxl.load_workbook (r'Input.xlsx', data_only=True )
sheet = wb['Sheet1']
ws = wb.active
y1= 100
x= 200
x1 = 700
def main():
for i in range ( 2, 42 ):
amount1 = sheet.cell(row=i, column=1).value
amount2 = sheet.cell(row=i, column=2).value
amount3 = sheet.cell(row=i, column=3).value
amount4 = sheet.cell(row=i, column=4).value
amount5 = sheet.cell(row=i, column=5).value
c = canvas.Canvas('output.pdf')
y =1500
c.setFont ( 'Helvetica', 12 )
c.drawString ( x,y, 'Component1' )
c.drawString ( x1, y, str ( amount1 ) )
y -= y1
c.drawString ( x,y, 'Component2' )
c.drawString ( x1,y, str ( amount2 ) )
y -= y1
c.drawString ( x,y, 'Component3' )
c.drawString ( x1, y, str ( amount3) )
y -= y1
c.drawString ( x,y, Component4' )
c.drawString ( x1, y, str ( amount4 ) )
y -= y1
c.drawString ( x, y, 'Component5' )
c.drawString ( x1, y, str ( amount5 ) )
y -= y1
if __name__ == "__main__":
main ()
我的 output
当有一个 function 几乎可以满足您的需要但不完全是通常的做法是编写自己的 function,它调用原始 function,但在某些条件下通常表现不同。 这些行为可以通过条件语句引入。
def str_(value):
if value is None:
return ''
return str(value)
c.drawString ( x,y, 'Component2' )
c.drawString ( x1,y, str_( amount2 ) )
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.