gpt4 book ai didi

python - 使用 ReportLab 将数据框转换为 PDF 中的 GRID。我怎样才能在网格的一列中划线

转载 作者:太空宇宙 更新时间:2023-11-03 20:48:08 26 4
gpt4 key购买 nike

我需要在网格中添加一条隔断线,因为列的值太大而无法放入 PDF 中:

enter image description here

我的代码:

for i, (_, rowCampos) in enumerate(dfBaseCampos.iterrows()):
dados.append([str(rowCampos['CAMPO']),
str(rowCampos['DESC_CAMPO']),
str(rowCampos['TIPO_CAMPO'])])

tabela = Table(dados, style=([
('GRID', (0, 0), (-1, -1), 0.25, colors.black),
('BOX', (0, 0), (-1, -1), 0.25, colors.black, None, (2, 2, 1)),
('BACKGROUND', (2, 0), (2, 0), colors.lightcyan),
('BACKGROUND', (0, 0), (0, 0), colors.lightcyan),
('BACKGROUND', (1, 0), (1, 0), colors.lightcyan),
('FONTSIZE', (0, 0), (-1, -1), 5),
('INNERGRID', (0, 0), (-1, -1), 0.25, colors.black)
]))

最佳答案

您需要使用 Flowable 对象,例如 Paragraph

l1 = Paragraph("Hello python", styles['Normal'])

这个解决方案适合我:

from reportlab.platypus import Paragraph
from reportlab.lib.styles import getSampleStyleSheet
from reportlab.platypus import Table, TableStyle
from reportlab.lib import colors

styles = getSampleStyleSheet()
for i, (_, rowCampos) in enumerate(dfBaseCampos.iterrows()):
l1 = Paragraph(str(rowCampos['CAMPO']), styles['Normal'])
l2 = Paragraph(str(rowCampos['DESC_CAMPO']), styles['Normal'])
l3 = Paragraph(str(rowCampos['TIPO_CAMPO']), styles['Normal'])
dados.append([l1, l2, l3])

tabela =Table(dados)
tabela.setStyle(TableStyle([
('GRID', (0, 0), (-1, -1), 0.25, colors.black),
('BOX', (0, 0), (-1, -1), 0.25, colors.black, None, (2, 2, 1)),
('BACKGROUND', (2, 0), (2, 0), colors.lightcyan),
('BACKGROUND', (0, 0), (0, 0), colors.lightcyan),
('BACKGROUND', (1, 0), (1, 0), colors.lightcyan),
('FONTSIZE', (0, 0), (-1, -1), 5),
('INNERGRID', (0, 0), (-1, -1), 0.25, colors.black)
]))

关于python - 使用 ReportLab 将数据框转换为 PDF 中的 GRID。我怎样才能在网格的一列中划线,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56434492/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com