[英]Cant apply table style in word doc using docx python
我無法使用 python 3.4 將自定義表格樣式應用於 WORD 文檔。 我遵循@scanny 的一個很好的方法:我創建了一個空白 WORD 文檔,創建了一個自定義表格樣式並將其保存為“OR”。 我創建了一個新表格並將自定義表格樣式應用於它。 然后我刪除了表格並將文檔保存為“template.docx”。然后我應用了如下樣式:
document = Document("C:/pytest/template.docx")
table = document.add_table(rows=1, cols=3)
table.style = "OR"
hdr_cells = table.rows[0].cells
hdr_cells[0].paragraphs[0].add_run('Date Filmed:').bold = True
hdr_cells[2].paragraphs[0].add_run('Barcode Number:').bold = True
row_cells = table.add_row().cells
row_cells[0].text = date
row_cells[2].text = bcode
當我運行程序時,出現錯誤:文件“C:\Python34\lib\site-packages\python_docx-0.8.5-py3.4.egg\docx\styles\styles.py”,第 57 行,在getitem raise KeyError("no style with name '%s'" % key) KeyError: "no style with name 'Title'"
它沒有在代碼中指定一行,而是一個名為“styles.py”的文件。 我有語法錯誤嗎?
謝謝,傑夫
老貼了,還是有問題。 問題出在“文檔”上。 您的 template.docx 不使用“OR”樣式,因此不會保存在那里。 相反,使用通用的空文檔,即generic_document=Document()
然后引用它作為您的樣式table.style = generic_document.styles['OR']
。
您的步驟被描述為:
我創建了一個空白 WORD 文檔,創建了一個自定義表格樣式並將其保存為“OR”。 我創建了一個新表格並將自定義表格樣式應用於它。 然后我刪除了表格並將文檔保存為“template.docx”。
我可以建議嘗試一個額外的步驟:
template.docx
。如果您不將文檔與使用該樣式的新表格一起保存,則該樣式將不會寫入文件。
我使用 python-docx 使用自定義表 styles 取得了成功,這一步讓我失望了。
設置table.style = "OR"
時需要指定樣式對象。
所以,你要做的是讓這個工作是table.style = document.styles['OR']
最簡潔的方法是在創建表時指定樣式,例如: table = document.add_table(rows=1, cols=3, document.styles['OR'])
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.