想做一个文本格式自动生成器,遇到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即可。
记下来,帮助需要的人。
chinxue2008 发布了11 篇原创文章 · 获赞 0 · 访问量 121 私信 关注