Python ReportLab自定义表格内部线条 实现按指定间隔显示粗线
实现代码
你不需要修改原有INNERGRID配置,只要动态追加间隔粗线的样式规则即可,完整代码如下:
from reportlab.lib import colors from reportlab.platypus import TableStyle # 可灵活调整的间隔参数,设置为n即每n行下方显示一条黑色粗线 lineBold = 2 # table_data 是你传给Table组件的二维列表数据源,这里获取表格总行数 rows_count = len(table_data) table_style_config = [ ('ALIGN', (0, 0), (-1, -1), 'CENTER'), ('ALIGN', (1, 1), (-1, -1), 'LEFT'), ('INNERGRID', (0, 0), (-1, -1), 0.25, colors.lightgrey), ('LINEBELOW', (0, 0), (-1, 0), 1, colors.black), ('OUTLINE', (0, 0), (-1, -1), 1, colors.lightgrey), ('LEFTPADDING', (0, 0), (-1, -1), 1), ('RIGHTPADDING', (0, 0), (-1, -1), 1), ('TOPPADDING', (0, 0), (-1, -1), 1), ('BOTTOMPADDING', (0, 0), (-1, -1), 1), ] # 按间隔动态添加粗线规则 for row_num in range(lineBold, rows_count, lineBold): table_style_config.append(('LINEBELOW', (0, row_num), (-1, row_num), 1, colors.black)) # 生成最终样式 final_table_style = TableStyle(table_style_config)
规则说明
lineBold参数可任意修改,比如设置为3就会每3行加一条粗线,完全适配灵活调整需求- 原有浅灰色内部网格线会保留,新增的黑色粗线会自动覆盖对应位置的浅灰线,最终效果和目标样式一致
内容的提问来源于stack exchange,提问作者matiii
相关产品推荐
相关产品推荐

