簡體   English   中英

在Win32COM中查找和替換標題中的文本

[英]Find and Replace text within headers with Win32COM

我想在Word文檔的標題中找到一些單詞,然后用其他單詞替換它們:我已經在文檔正文中使用以下代碼完成了此任務,並且效果很好。

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)

問題在於此代碼不適用於頁眉和頁腳。 我也嘗試過這個:

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)

但這並不能更好地工作(盡管我沒有任何錯誤消息)。

有人對此有想法嗎? 另一個信息是我在標題中也插入了一個圖像,我不知道這是否重要。

打開文檔后,您必須激活頁眉/頁腳窗格。 語言Visual Basic。 將語法更改為python

   ActiveDocument.ActiveWindow.Panes(1).View.SeekView=wdSeekCurrentPageHeader

用於標題和

ActiveDocument.ActiveWindow.Panes(1).View.SeekView = wdSeekCurrentPageFooter

用於頁腳

然后搜索/替換

要將窗格更改為主要部分,請使用

ActiveDocument.ActiveWindow.Panes(1).View.SeekView = wdSeekMainDocument

您的解決方案對我不起作用,我仍然只能在正文中替換單詞。 這是我的代碼

def replace(word,doc):
today = date.today()

data = today.strftime("%d.%m.%Y")
pier = '19S'#input('Inserisci pier:')
code = '161'#input('Inserisci codice:')

FromTo = {"$DATA$" : data,
          "$PIER$" : pier,
          "$CODE$" :code}

const = win32.constants
wdFindContinue = 1
wdReplaceAll = 2

#SOSTITUISCI TESTO,HEADER E FOOTER
for sel in [const.wdSeekCurrentPageFooter,const.wdSeekCurrentPageHeader,const.wdSeekMainDocument]:
    for From in FromTo.keys():
        word.ActiveDocument.ActiveWindow.Panes(1).View.SeekView = sel
        word.Selection.Find.Execute(From, False, False, False, False, False, True, wdFindContinue, False, FromTo[From],wdReplaceAll)
a = 1
return a

有什么提示嗎?

謝謝

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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