如何解决如何将大单元格分成多行并调整表格?
我正在使用 pytablewriter 将数据从 postgres 写入第一个网格表。我的代码是:
from pytablewriter import RstGridTableWriter as RST
import psycopg2
if __name__ == '__main__':
with connection.cursor(name='foo') as cursor:
cursor.itersize = 100000
cursor.execute(query)
for raw_row in cursor:
row = [
raw_row[0],raw_row[1],raw_row[2],','.join([item for item in raw_row[3] if item])
]
matrix.append(row)
writer = RST(
table_name='DocTable',headers=['col1','col2','col3','col4'],value_matrix=matrix
)
writer.dump('./sample.rst')
获取的每一行的最后一个值是一个字符串列表。对于每次迭代,上面的代码将字符串列表转换为逗号分隔的字符串。该字符串可能很大并导致列很大。
我想知道如何为每列输出一个固定宽度的表格并将大列分成多行。示例:
单元格:
"Lorem,ipsum,dolor,sit,amet,consectetur,adipiscing,elit,sed,do,eiusmod,tempor,incididunt,ut,labore,et,dolore,magna,aliqua.,Ut,enim,ad,minim,veniam,quis,nostrud,exercitation,ullamco,laboris,nisi,aliquip,ex,ea,commodo,consequat"
变成:
'Lorem,'
'ipsum,'
'dolor,'
'sit,'
'amet,'
'consectetur,'
'adipiscing,'
'elit,'
'sed,'
'do,'
'eiusmod,'
'tempor,'
'incididunt,'
'ut,'
'labore,'
'et,'
'dolore,'
'magna,'
'aliqua.,'
'Ut,'
'enim,'
'ad,'
'minim,'
'veniam,'
'quis,'
'nostrud,'
'exercitation,'
'ullamco,'
'laboris,'
'nisi,'
'aliquip,'
'ex,'
'ea,'
'commodo,'
'consequat'
并且所有其他单元格也进行了适当调整。
我尝试将其写为 ',\n'.join([item for item in raw_row[3] if item])
但不起作用。
解决方法
您可以通过使用 nth-child
selector 和 rst-class
指令的自定义 CSS 来完成此操作,而无需更改您的数据。
非常粗略,假设第四列是麻烦。
file.rst
.. rst-class:: my-table
[pytablewriter output]
custom.css
table.my-table tbody tr td:nth-child(4) {
width: 30%;
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。