python - 如何将 pandas DataFrame 转换为 reportlab 模块中的表格?
问题描述
我有下面的数据框:
问题是,当我尝试使用 a 制作表格时summary_debit
,DataFrame
我会收到以下错误:ValueError: <Table@0x2231B045208 unknown rows x unknown cols>... invalid data type
from reportlab.pdfgen import canvas
from reportlab.platypus import *
from reportlab.lib import colors
colwidths = 50
GRID_STYLE = TableStyle(
[('GRID', (0, 0), (-1, -1), 0.25, colors.pink),
('ALIGN', (1, 0), (-1, -1), 'RIGHT')])
t1 = Table(summary_debit)
解决方案
我为您的 DataFrame 图像构建了一个示例,但您可以扩展它。
运行代码后,我得到了正确的 pdf。
我希望这段代码对你有所帮助。
from reportlab.pdfgen import canvas
from reportlab.platypus import *
from reportlab.lib import colors
from reportlab.lib.pagesizes import letter
import pandas as pd
import numpy as np
data = {'Account Name': ['ACCOUNT PAYABLE', 'PAGIBIG LOAN PAYABLE','PREPAID TAX']
,'': [-0.1, -0.2,-0.3]}
summary_debit = pd.DataFrame(data=data)
colwidths = 50
GRID_STYLE = TableStyle(
[('GRID', (0, 0), (-1, -1), 0.25, colors.pink),
('ALIGN', (1, 0), (-1, -1), 'RIGHT')])
#t1 = Table([summary_debit.iloc[:,1].tolist(),summary_debit.iloc[:,0].tolist()]);
t1 = Table(np.array(summary_debit).tolist());
doc = SimpleDocTemplate("table.pdf", pagesize=letter)
element = []
element.append(t1)
doc.build(element)
PDF图像导出
推荐阅读
- python - 如何在 python3 中使新的 Python 类型适应 SQL 语法
- python - While循环用于迭代两个值之间的所有组合
- android - 在android中创建按钮格式
- android - 我长类型值的 PendingIntent.getBroadcast 方法(int requestCode)的解决方案是什么?
- javascript - 如何防止在 React 中使用钩子重新渲染页面?
- xml - 分组排序和求和
- youtube - 使用 youtube data api 设置视频游戏
- php - 如何使用 FILTER_VALIDATE_IP 限制 IP 地址范围
- javascript - 原型中的“this”采用窗口而不是对象
- java - 将字符串转换为 JAVA 中的可调用方法