想做一个文本格式自动生成器,遇到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即可。

记下来,帮助需要的人。

————————————————

版权声明:本文为CSDN博主「chinxue2008」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。

原文链接:https://blog.csdn.net/weixin_37281967/java/article/details/104072300

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐