为 Reportlab 中的每一列设置不同的大小
Set different size for each columns in Reportlab
我在 python 中使用 Reportlab。现在我正在尝试自定义每个列宽。因为有些列需要小宽度而不是其他列。有什么方法可以让每一列都可以自定义吗?
目前从图片上看,我想把Partname列的宽度加宽,tax、Style p等设置小宽度
views.py
columns = [
{'title': 'Part No', 'field': 'partno'},
{'title': 'Part Name', 'field': 'partname'},
{'title': 'Style P', 'field': 'style'},
{'title': 'Standard P', 'field': 'standardpack'},
{'title': 'Unit Per Car', 'field': 'unit'},
{'title': 'Quantity PCS', 'field': 'quantity'},
{'title': 'Tax', 'field': 'tax'},
{'title': 'Unit Price', 'field': 'price'},
{'title': 'Amount', 'field': 'amount'},
]
table_data = [[col['title'] for col in columns]]
table_row = [str(tr.part.partno),tr.part.partname,
tr.part.stylepack, tr.part.standardpack,tr.part.unit, tr.quantity, tr.part.tax, tr.part.price, tr.amount]
table_data.append(table_row)
table = Table(table_data, repeatRows=1, colWidths=[150,150])
table.setStyle(TableStyle([
('BOX', (0, 0), (-1, -1), 0.20, colors.dimgrey),
('FONT', (0, 0), (-1, 0), 'Helvetica-Bold'),
('INNERGRID', (0, 0), (-1, -1), 0.1, colors.black),
('ALIGN', (0, 0), (-1, -1), 'CENTER'),
('FONTSIZE', (0, 0), (-1, -1), 10),
]))
elements.append(table)
您可以这样申请:
from reportlab.lib.units import inch
colWidths=(1.2*inch, 1.2*inch, 2.4*inch, 1.2*inch, 1.2*inch, 1.2*inch, 1.2*inch, 1.2*inch)
我在 python 中使用 Reportlab。现在我正在尝试自定义每个列宽。因为有些列需要小宽度而不是其他列。有什么方法可以让每一列都可以自定义吗?
目前从图片上看,我想把Partname列的宽度加宽,tax、Style p等设置小宽度
views.py
columns = [
{'title': 'Part No', 'field': 'partno'},
{'title': 'Part Name', 'field': 'partname'},
{'title': 'Style P', 'field': 'style'},
{'title': 'Standard P', 'field': 'standardpack'},
{'title': 'Unit Per Car', 'field': 'unit'},
{'title': 'Quantity PCS', 'field': 'quantity'},
{'title': 'Tax', 'field': 'tax'},
{'title': 'Unit Price', 'field': 'price'},
{'title': 'Amount', 'field': 'amount'},
]
table_data = [[col['title'] for col in columns]]
table_row = [str(tr.part.partno),tr.part.partname,
tr.part.stylepack, tr.part.standardpack,tr.part.unit, tr.quantity, tr.part.tax, tr.part.price, tr.amount]
table_data.append(table_row)
table = Table(table_data, repeatRows=1, colWidths=[150,150])
table.setStyle(TableStyle([
('BOX', (0, 0), (-1, -1), 0.20, colors.dimgrey),
('FONT', (0, 0), (-1, 0), 'Helvetica-Bold'),
('INNERGRID', (0, 0), (-1, -1), 0.1, colors.black),
('ALIGN', (0, 0), (-1, -1), 'CENTER'),
('FONTSIZE', (0, 0), (-1, -1), 10),
]))
elements.append(table)
您可以这样申请:
from reportlab.lib.units import inch
colWidths=(1.2*inch, 1.2*inch, 2.4*inch, 1.2*inch, 1.2*inch, 1.2*inch, 1.2*inch, 1.2*inch)