想做一個文本格式自動生成器,遇到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