2017-01-08 19 views
-1

質問があります: * .docxファイルにヘッダー(およびフッター)を追加するにはどうすればよいですか? 私はdjangoプロジェクトでライブラリpython-docxを使用しています。しかし、それは本当にヘッダーを追加することはできません。 私は 'win32com'を使ってスタック(2012年7月)で解決策を見つけましたが、最近ではうまくいきません。 助けてください。 ありがとうございます。 良い一日を。Pythonを使用して* .docx単語ファイルにヘッダーを追加

+0

win32comソリューションを試してみてください。あなたのコードを投稿してください。何が問題なのか分かりません。 – Schollii

答えて

0

Courtest of edi9999 あなたが取ることができる最良の方法は、ファイルを管理する方法を見るためにpython-docxを見ていると思います。 DOCXはzip圧縮形式(Docx Tag Wiki)です:

.docx形式は、次のフォルダが含まれているzipファイルです:

+--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に:私はあなたのためにそれを発見した:あなたがdocxファイルの主な内容である「単語/ document.xml」のxmlcontentを得ることができます

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 

https://github.com/mikemaccana/python-docx/blob/master/docx.py#L65は、docxファイル・パイソンを使用して、それのいずれかを変更します(私はあなたにお勧めします、docx- pythonは、多くの異なる要素を追加することができるようです。ドキュメントの先頭に他のワードドキュメントの内容をコピーしたい場合は、おそらくdocument.xmlの内容をdocument.xmlにコピーしようとする可能性がありますが、おそらくエラーが発生します。画像または非テキストコンテンツを使用する。

ヘッダーまたはフッターを追加するには、ファイルword/header1.xmlまたはword/footer1.xmlを作成する必要があります。作成したファイルのheader1.xmlコンテンツをコピーするだけで済みます。これは動作するはずです。

希望します。

関連する問題