3

我有数百个 word 文档,我需要为其添加特定的页眉(如典型的 MS Word 页眉/页脚)。不是需要修改标题,这些文档只是不包含一个。有没有办法用 Python-docx 模块做到这一点?我最近发现了它,它看起来很有希望。

4

4 回答 4

1

如果用户没有 docx 包,也可以通过 win32 完成,使用这个。

..//

import win32com.client

if win32com.client.gencache.is_readonly == True:
    win32com.client.gencache.is_readonly = False
    win32com.client.gencache.Rebuild()

from win32com.client.gencache import EnsureDispatch
from win32com.client import constants

word = win32com.client.gencache.EnsureDispatch("Word.Application")
word.Visible = False

    #tell word to open the document
    word.Documents.Open (IP_Directory_Dest + "\\" + name)

    #open it internally
    doc = word.Documents(1)

    # for changing the header information of the Document
    word.Visible = True
    word.ActiveDocument.Sections(1).Headers(win32com.client.constants.wdHeaderFooterPrimary).Range.Text='STUFF U WANT AS UR DOCUMENT HEADER'
    word.ActiveDocument.Save()

...///

于 2013-04-16T13:09:05.063 回答
0

很简单。

from docx import *
document = yourdocument.docx
docbody = document.xpath('/w:document/w:body',namespaces=wordnamespaces)[0]
docbody.append(heading('Your header text',1)  )   
于 2012-07-25T18:29:14.457 回答
0

保持正确的词标题格式。

  1. 创建带有页眉/页脚的模板 docx 文件
  2. 通过Word将占位符(即#headerText)插入到docx中(对文本进行分组)
  3. 展开模板的xml树
  4. 用您想要的文本替换占位符
  5. 输出新的word文档

这不是编辑 docx 的理想解决方案,但它主要解决了我的 python docx 文本插入需求。

最终,python docx 可能会添加更多功能来帮助编辑页眉/页脚。

于 2016-11-08T18:30:10.637 回答
0

好吧,如果我理解的话,您需要在许多 docx 文件中创建一个标题部分。就我而言,人们正在研究 python-docx 来实现这一点。虽然此新功能不可用,但您可以直接将其添加到您的 docx 文件中。

如果您还不知道,可以解压缩 docx 文件。在它的结构里面有一些 header.xml 文件。

一个建议是,创建一个带有标题的 docx 文件,然后,使用 lxml 和 zipfile 模块,您可以简单地更新所有 docx 文件中的 header.xml 文件。

如果您认为这可以帮助您解决问题,请告诉我,我可能会指导您完成。

问候

于 2016-07-26T19:36:18.070 回答