使用python在* .docx word文件中添加标头

时间:2017-01-08 13:30:33

标签: python django ms-word docx win32com

我有一个问题: 如何在* .docx文件中添加页眉(和页脚)? 我在我的django项目中使用库python-docx。但它确实无法添加标题。 我使用'win32com'在堆栈上找到了解决方案(2012年7月),但现在它对我不起作用。 帮帮我一下。 谢谢。 祝你有愉快的一天。

1 个答案:

答案 0 :(得分:0)

Courtest of edi9999 我认为你可以采取的最佳方式是查看python-docx以了解它如何管理文件。 Docx是压缩格式(Docx Tag Wiki):

.docx格式是一个压缩文件,其中包含以下文件夹:

+--docProps
|  +  app.xml
|  \  core.xml
+  res.log
+--word //this folder contains most of the files that control the content of the document
|  +  document.xml //Is the actual content of the document
|  +  endnotes.xml
|  +  fontTable.xml
|  +  footer1.xml //Containst the elements in the footer of the document
|  +  footnotes.xml
|  +--media //This folder contains all images embedded in the word
|  |  \  image1.jpeg
|  +  settings.xml
|  +  styles.xml
|  +  stylesWithEffects.xml
|  +--theme
|  |  \  theme1.xml
|  +  webSettings.xml
|  \--_rels
|     \  document.xml.rels //this document tells word where the images are situated
+  [Content_Types].xml
\--_rels
   \  .rels

像docx-python这样的库首先提取docx,所以你可以在python docx中找到它:我找到了你:https://github.com/mikemaccana/python-docx/blob/master/docx.py#L65

def opendocx(file):
    '''Open a docx file, return a document XML tree'''
    mydoc = zipfile.ZipFile(file)
    xmlcontent = mydoc.read('word/document.xml')
    document = etree.fromstring(xmlcontent)
    return document

您可以获取' word / document.xml'的xmlcontent。这是docx的主要内容,使用docx-python进行更改(我向你推荐,docx-python似乎能够添加许多不同的元素。如果你想复制其他word文档的内容)在文档的开头,您可能会尝试将document.xml的内容复制到document.xml中,但它可能会给您一些错误,特别是如果您使用图像或非文本内容。

要添加页眉或页脚,您必须创建文件word/header1.xmlword/footer1.xml您可以只复制您创建的文件的header1.xml内容,这应该可以。< / p>

希望这有帮助