簡體   English   中英

無法使用 docx python 在 word doc 中應用表格樣式

[英]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”。

我可以建議嘗試一個額外的步驟:

  1. 創建空白word文檔
  2. 創建自定義表格樣式,以特定名稱保存。
  3. 創建一個新表格並將自定義表格樣式應用到它。
  4. !! 用新表保存文檔!
  5. 刪除表。
  6. 將文檔另存為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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM