无法生成 table
Unable to generate the table
我有一个像这样的 numpy 数组:
[['aaq', '56.18%', 'CC']
['jasl', '0.00%', 'JO']
['arw', '1.74%', 'AS']
['vcf', '1.07%', 'DA']
['hsw', '0.00%', 'LO']
['wey', '41.01%', 'IS']
['fol', '0.00%', 'MO']
['aaw', '0.00%', 'AP'],
['sta', '0.00%', 'TT']]
我想用作 table 的数据。
为此,我尝试过的是:
doc = SimpleDocTemplate("sectors.pdf",pagesize=A4)
elements = []
data= [['aaq', '56.18%', 'CC']
['jasl', '0.00%', 'JO']
['arw', '1.74%', 'AS']
['vcf', '1.07%', 'DA']
['hsw', '0.00%', 'LO']
['wey', '41.01%', 'IS']
['fol', '0.00%', 'MO']
['aaw', '0.00%', 'AP'],
['sta', '0.00%', 'TT']]
t=Table(data)
elements.append(t)
doc.build(elements)
当我 运行 代码时,我收到以下错误:
Traceback (most recent call last):
File "sector_alloc.py", line 236, in <module>
t=Table(data)
File "reportlab/platypus/tables.py", line 212, in __init__
raise ValueError("%s invalid data type" % self.identity())
ValueError: <Table@0x7F61F6D2ACC0 unknown rows x unknown cols>...
invalid data type
这可能与将 np.array
的值转换为 Paragraphs
有关? (可能是因为他们在数据中是str
)
在那种情况下,我所做的是分别获取 np.array
的每一列 (list
) 并执行:
for valor in list:
list.append(Paragraph('<b>'+valor+'</b>',styleSheet["BodyText"]))
然后尝试再次连接 lists
以再次形成 numpy 数组,但也没有成功..
任何人都可以帮我将 numpy 数组指定为我的 table 的数据吗?
您的数据列表中的大多数列表后面似乎缺少逗号。列表列表应如下所示:
data = [
['aaq', '56.18%', 'CC'],
['jasl', '0.00%', 'JO'],
['arw', '1.74%', 'AS'],
['vcf', '1.07%', 'DA'],
['hsw', '0.00%', 'LO'],
['wey', '41.01%', 'IS'],
['fol', '0.00%', 'MO'],
['aaw', '0.00%', 'AP'],
['sta', '0.00%', 'TT'],
]
这是我测试过的完整示例:
from reportlab.lib.pagesizes import letter
from reportlab.platypus import SimpleDocTemplate, Table
doc = SimpleDocTemplate("example.pdf", pagesize=letter)
data = [
['aaq', '56.18%', 'CC'],
['jasl', '0.00%', 'JO'],
['arw', '1.74%', 'AS'],
['vcf', '1.07%', 'DA'],
['hsw', '0.00%', 'LO'],
['wey', '41.01%', 'IS'],
['fol', '0.00%', 'MO'],
['aaw', '0.00%', 'AP'],
['sta', '0.00%', 'TT'],
]
doc.build([Table(data)])
我有一个像这样的 numpy 数组:
[['aaq', '56.18%', 'CC']
['jasl', '0.00%', 'JO']
['arw', '1.74%', 'AS']
['vcf', '1.07%', 'DA']
['hsw', '0.00%', 'LO']
['wey', '41.01%', 'IS']
['fol', '0.00%', 'MO']
['aaw', '0.00%', 'AP'],
['sta', '0.00%', 'TT']]
我想用作 table 的数据。 为此,我尝试过的是:
doc = SimpleDocTemplate("sectors.pdf",pagesize=A4)
elements = []
data= [['aaq', '56.18%', 'CC']
['jasl', '0.00%', 'JO']
['arw', '1.74%', 'AS']
['vcf', '1.07%', 'DA']
['hsw', '0.00%', 'LO']
['wey', '41.01%', 'IS']
['fol', '0.00%', 'MO']
['aaw', '0.00%', 'AP'],
['sta', '0.00%', 'TT']]
t=Table(data)
elements.append(t)
doc.build(elements)
当我 运行 代码时,我收到以下错误:
Traceback (most recent call last):
File "sector_alloc.py", line 236, in <module>
t=Table(data)
File "reportlab/platypus/tables.py", line 212, in __init__
raise ValueError("%s invalid data type" % self.identity())
ValueError: <Table@0x7F61F6D2ACC0 unknown rows x unknown cols>...
invalid data type
这可能与将 np.array
的值转换为 Paragraphs
有关? (可能是因为他们在数据中是str
)
在那种情况下,我所做的是分别获取 np.array
的每一列 (list
) 并执行:
for valor in list:
list.append(Paragraph('<b>'+valor+'</b>',styleSheet["BodyText"]))
然后尝试再次连接 lists
以再次形成 numpy 数组,但也没有成功..
任何人都可以帮我将 numpy 数组指定为我的 table 的数据吗?
您的数据列表中的大多数列表后面似乎缺少逗号。列表列表应如下所示:
data = [
['aaq', '56.18%', 'CC'],
['jasl', '0.00%', 'JO'],
['arw', '1.74%', 'AS'],
['vcf', '1.07%', 'DA'],
['hsw', '0.00%', 'LO'],
['wey', '41.01%', 'IS'],
['fol', '0.00%', 'MO'],
['aaw', '0.00%', 'AP'],
['sta', '0.00%', 'TT'],
]
这是我测试过的完整示例:
from reportlab.lib.pagesizes import letter
from reportlab.platypus import SimpleDocTemplate, Table
doc = SimpleDocTemplate("example.pdf", pagesize=letter)
data = [
['aaq', '56.18%', 'CC'],
['jasl', '0.00%', 'JO'],
['arw', '1.74%', 'AS'],
['vcf', '1.07%', 'DA'],
['hsw', '0.00%', 'LO'],
['wey', '41.01%', 'IS'],
['fol', '0.00%', 'MO'],
['aaw', '0.00%', 'AP'],
['sta', '0.00%', 'TT'],
]
doc.build([Table(data)])