gpt4 book ai didi

c# - 在不破坏字段的情况下设置 Range.Text?

转载 作者:太空宇宙 更新时间:2023-11-03 22:58:45 25 4
gpt4 key购买 nike

我需要从还包含字段(例如页码)的 Word 文档页脚中删除一些文本。简单吧?

但是,当我更新范围内的文本时,它会破坏它包含的字段。例如,页码字段变成了一个数字(而不是保持最新的字段)。

有没有办法在不影响其包含的字段的情况下更改范围内的文本?

这是我当前的代码:

string wordToRemove = "foo";            

foreach (Section section in doc.Sections)
{
foreach (HeaderFooter footer in section.Footers)
{
if (footer.Range.Text.Contains(wordToRemove))
footer.Range.Text = footer.Range.Text.Replace(wordToRemove, "");
}
}

最佳答案

Simple, right?

确实 - 一旦您了解 Range 对象的 Find property(?!):

//
// Summary:
// Returns a Microsoft.Office.Interop.Word.Find object that contains the criteria
// for a find operation.
Find Find { get; }

它反过来提供了一个方便的 Execute 方法,有很多选项,更重要的是,它具有所需的非破坏性行为:

string wordToRemove = "foo";

foreach (Section section in doc.Sections)
{
foreach (HeaderFooter footer in section.Footers)
{
footer.Range.Find.Execute(FindText: wordToRemove, ReplaceWith: "", Replace: WdReplace.wdReplaceAll);
}
}

关于c# - 在不破坏字段的情况下设置 Range.Text?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44132127/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com