使用 Win32COM 查找和替换 headers 中的文本
Find and Replace text within headers with Win32COM
我想在 Word 文档的 headers 中找到一些词并用其他词替换它们:我在文档的 body 中使用以下代码完成了此操作,而且效果很好。
import win32com.client
wdFindContinue = 1
wdReplaceAll = 2
app = win32com.client.DispatchEx("Word.Application")
app.Visible = 1
app.DisplayAlerts = 0
app.Documents.Open(document_path)
FromTo = {"<#TITLE#>":"My title", "<#DATE#>":"Today"}
for From in FromTo.keys():
app.Selection.Find.Execute(From, False, False, False, False, False, True, wdFindContinue, False, FromTo[From], wdReplaceAll)
问题是此代码不适用于 headers 和页脚。我也试过这个:
app.ActiveDocument.Sections(1).Headers(win32com.client.constants.wdHeaderFooterPrimary).Range.Select
app.Selection.Find.Execute(From, False, False, False, False, False, True, wdFindContinue, False, FromTo[From], wdReplaceAll)
但它并没有更好地工作(尽管事实上我没有任何错误消息)。
有人知道怎么做吗?另一个信息是我在headers中也插入了一张图片,我不知道是否重要。
您必须在打开文档后激活 header/footer 窗格。
语言 Visual basic。将语法更改为 python
ActiveDocument.ActiveWindow.Panes(1).View.SeekView=wdSeekCurrentPageHeader
对于 header 和
ActiveDocument.ActiveWindow.Panes(1).View.SeekView = wdSeekCurrentPageFooter
页脚
然后search/replace
要将窗格更改为主要部分,请使用
ActiveDocument.ActiveWindow.Panes(1).View.SeekView = wdSeekMainDocument
我想在 Word 文档的 headers 中找到一些词并用其他词替换它们:我在文档的 body 中使用以下代码完成了此操作,而且效果很好。
import win32com.client
wdFindContinue = 1
wdReplaceAll = 2
app = win32com.client.DispatchEx("Word.Application")
app.Visible = 1
app.DisplayAlerts = 0
app.Documents.Open(document_path)
FromTo = {"<#TITLE#>":"My title", "<#DATE#>":"Today"}
for From in FromTo.keys():
app.Selection.Find.Execute(From, False, False, False, False, False, True, wdFindContinue, False, FromTo[From], wdReplaceAll)
问题是此代码不适用于 headers 和页脚。我也试过这个:
app.ActiveDocument.Sections(1).Headers(win32com.client.constants.wdHeaderFooterPrimary).Range.Select
app.Selection.Find.Execute(From, False, False, False, False, False, True, wdFindContinue, False, FromTo[From], wdReplaceAll)
但它并没有更好地工作(尽管事实上我没有任何错误消息)。
有人知道怎么做吗?另一个信息是我在headers中也插入了一张图片,我不知道是否重要。
您必须在打开文档后激活 header/footer 窗格。 语言 Visual basic。将语法更改为 python
ActiveDocument.ActiveWindow.Panes(1).View.SeekView=wdSeekCurrentPageHeader
对于 header 和
ActiveDocument.ActiveWindow.Panes(1).View.SeekView = wdSeekCurrentPageFooter
页脚
然后search/replace
要将窗格更改为主要部分,请使用
ActiveDocument.ActiveWindow.Panes(1).View.SeekView = wdSeekMainDocument