繁体   English   中英

使用 python 与 reportlab 生成 pdf

[英]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

在 pdf 值生成为无,但想转换为空白输出

当有一个 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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM