ms-word – Python-docx,如何在表中設置單元格寬度?


如何在表格中設置單元格寬度?到目前為止,我得到了:

 

 

from docx import Document from docx.shared import Cm, Inches document = Document() table = document.add_table(rows=2, cols=2) table.style = 'TableGrid' #single lines in all cells table.autofit = False col = table.columns[0] col.width=Inches(0.5) #col.width=Cm(1.0) #col.width=360000 #=1cm document.save('test.docx')

沒有我在col.width中設置的數量或單位,其寬度不會改變.

 
簡答:單獨設置單元格寬度.

 

 

for cell in table_columns[0].cells: cell.width = Inches(0.5)

設置列寬時,python-docx執行您要求它執行的操作.問題是Word忽略了它.其他客戶端(如LibreOffice)尊重列寬設置.

.docx文件是XML格式(因此文件擴展名中的’x’后綴).表的XML詞匯表有一個列寬的位置和一個單元格寬度的位置.在談到這個細節時,誰會關注什么有點煩惱.一個共同點是每個人都尊重在單個細胞水平設置的顯式寬度.它對我來說沒有多大意義,但這是使它工作所需要的.在程序中使用一個能夠處理細節的函數可能是有意義的:

 

def set_col_widths(table): widths = (Inches(1), Inches(2), Inches(1.5)) for row in table.rows: for idx, width in enumerate(widths): row.cells[idx].width = width

如果你的表有合並的單元格,這會變得有點復雜,這實際上可能是Word忽略列寬的原因;它們在某些合並單元情況下是模棱兩可的.

 
 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM