我想替换word文档中的标题。
$pth = "d:\test\test.docx"
$objWord = New-Object -ComObject word.application
$objWord.Visible = $True
$objDoc = $objWord.Documents.Open($pth)
$objSelection = $objWord.Selection
$Section = $objDoc.Sections.Item(1)
$header = $Section.Headers.Item(1)
这给我一个明确的文字:
Write-Host $header.Range.Text
但我的标题有图像和表格。我可以在不破坏标题的情况下替换标题中的字符串吗?我替换word文档中的字符串,效果很好。我唯一的问题是标题。
链接到下面的示例Word文档标题。
答案 0 :(得分:0)
试试这个:
$replaceWith = "New Text !"
$replace = [Microsoft.Office.Interop.Word.WdReplace]::wdReplaceAll
$findWrap = [Microsoft.Office.Interop.Word.WdFindWrap]::wdFindContinue
$find = $header.Range.find
$find.Execute($header.Range.Text,
$false, #match case
$false, #match whole word
$false, #match wildcards
$false, #match soundslike
$false, #match all word forms
$true, #forward
$findWrap,
$null, #format
$replaceWith,
$replace)
图片和其他表格应保持不变。
答案 1 :(得分:0)
我不知道PowerShell中的解决方案,但我使用的是来自powershell的VBA。
//代码已更改,如果它不工作,请告诉我
$objWord = New-Object -ComObject word.application
$objWord.Visible = $True # don't have to be true
$pathToFile = "d:\Delivery_Templates\filename.docx" #path to your file
$objDoc = $objWord.Documents.Open(pathToFile )
$objSelection = $objWord.Selection
$objWord.Run('myReplace', [ref] $currentVersion); # myReplace - macro name, currentVersion - macro parameter