问题描述:
需要在word表格中插入表格数据,使用影刀的"插入Word表格"指令时无法指定列宽,无法实现跨页断行的效果,由于这个这个word文件是直接发给客户的,表格呈现的数据不够美观
影刀流程如下:

效果如下:


解决方法:
俗话说的好,指令不够,代码来凑。啊呸,不对,应该是GPT来凑。在多次求助GPT以后,它给出了一下解决方案!
from docx import Document
from docx.shared import Cm
from docx.oxml import OxmlElement
from docx.oxml.ns import qn
def main(args):
# 打开已有的Word文档
path=args["word路径"]
# 打开已有的Word文档
doc = Document(path)
for table in doc.tables:
if len(table.columns) == 3:
# 设置表格的列宽(单位为厘米)
table.autofit = False
table.columns[0].width = Cm(3)
table.columns[1].width = Cm(3)
table.columns[2].width = Cm(9)
#设置每一行不允许跨行显示
for row_index in range(0, len(table.rows)):
tr = table.rows[row_index]._tr
trPr = tr.get_or_add_trPr()
cantSplit = OxmlElement('w:cantSplit')
# 设置属性使其有效
cantSplit.set(qn('w:val'), 'true')
trPr.append(cantSplit)
doc.save(path)实现效果如下:

