【问题标题】:Generate pdf with reportlab using python使用python使用reportlab生成pdf
【发布时间】:2021-05-22 05:09:58
【问题描述】:

我正在通过 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 ()

我的输出

在生成为 None 的 pdf 值中,但想转换为空白

【问题讨论】:

    标签: python excel pdf openpyxl reportlab


    【解决方案1】:

    如果有一个函数几乎可以满足您的需要,但不完全是编写自己的函数的常见做法,通常会调用原始函数,但在某些情况下会表现不同。这些行为可以通过条件语句引入。

    def str_(value):
        if value is None:
            return ''
        return str(value)
    
    c.drawString ( x,y, 'Component2' )
    c.drawString ( x1,y, str_( amount2 ) )
    
    

    【讨论】:

    • 虽然这个答案可能会回答这个问题,但如果您稍微解释一下代码会很好,例如为什么它是这样构建的,它是如何工作的等等。
    • @mugiseyebrows - 非常感谢,它的工作。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-03-14
    • 2013-03-07
    • 1970-01-01
    • 2018-01-18
    • 2017-03-24
    • 2017-12-05
    • 1970-01-01
    相关资源
    最近更新 更多