Word互操作替换文本
本文关键字:文本 替换 互操作 Word | 更新日期: 2023-09-27 18:18:21
我使用以下函数查找和替换文本:
Microsoft.Office.Interop.Word.Application wordApp = new Microsoft.Office.Interop.Word.Application { Visible = true };
Microsoft.Office.Interop.Word.Document aDoc = wordApp.Documents.Open(fileName, ReadOnly: false, Visible: true);
aDoc.Activate();
FindAndReplace(wordApp, "A", "B");
private void FindAndReplace(Microsoft.Office.Interop.Word.Application doc, object findText, object replaceWithText)
{
try
{
//options
object matchCase = false;
object matchWholeWord = true;
object matchWildCards = false;
object matchSoundsLike = false;
object matchAllWordForms = false;
object forward = true;
object format = false;
object matchKashida = false;
object matchDiacritics = false;
object matchAlefHamza = false;
object matchControl = false;
object read_only = false;
object visible = true;
object replace = 2;
object wrap = 1;
//execute find and replace
doc.Selection.Find.Execute(ref findText, ref matchCase, ref matchWholeWord,
ref matchWildCards, ref matchSoundsLike, ref matchAllWordForms, ref forward, ref wrap, ref format, ref replaceWithText, ref replace,
ref matchKashida, ref matchDiacritics, ref matchAlefHamza, ref matchControl);
}
catch (Exception e)
{
throw e;
}
}
它工作得很好,但我想知道是否有任何方法将文本"A"替换为"B"格式的其他样式?我的意思是:将"A" FontColor="Black"替换为"B" FontColor="Red"。
换句话说,我想知道是否有可能改变文本"A"的颜色,或者用另一种颜色的"B"代替它。
是的,您可以使用Word的查找/替换来更改格式和文本。获得所需语法的最佳方法是在Word宏中记录操作,然后将所需属性放入c#代码中。
Ctrl+H将弹出查找/替换对话框。单击"更多"按钮以显示高级选项。光标移至"替换"框内,点击格式按钮进入格式命令,字体颜色将出现在"字体"条目(对话框)中。
当您查看记录的VBA代码时,查找Find。替换部分,其中将列出"replace"的属性。
在你的c#代码中,为Find声明一个对象并实例化它。例如:词。查找wdFind = select .Find;
与属性wdfind . replace . font . color一起使用
并对对象执行查找:wdFind.Execute(....