python-docx的表格行宽设置

想做一个文本格式自动生成器,遇到docx的表格设置宽度问题。

网上docx的资料比较少,官方在表格行宽也没介绍,用行高设置的方式来设置宽度,总是不行。

多次尝试解决了问题,需要对同列的cell属性进行设置,而不能直接对columns或者column设置,要么报错,要么没反应。

可以在给cell赋值时,检测对应的列号,这样就可对整个列宽度进行约束。

伪代码:

row_cnt=0
for row_cnt in xx:
    cell_cnt=0
    for cell_cnt in xx:
        if row_cnt==0:          ##设置第一列的列宽
            table.cell(row_cnt,cell_cnt).width=Cm(3)
        table.cell(row_cnt,cell_cnt).value=xx        #给每个cell赋值
        cell_cnt+=1
    row_cnt+=1
.....

原来用cell(0,0)赋值的办法,想第一格约束了宽度就行,实际不行。原因可能是第二行的cell会改变原本的行宽,用这种方法autofill也不会起作用,而判断同一列的cell方法,有点笨,但是实现了。如果要设置第二列宽,只用增加一个if即可。

记下来,帮助需要的人。

发布了12 篇原创文章 · 获赞 0 · 访问量 145

猜你喜欢

转载自blog.csdn.net/weixin_37281967/article/details/104072300