以编程方式替换段落中的格式化文本(链接,内容)

时间:2014-11-05 15:58:56

标签: c# ms-word office-addins

我正在尝试创建一个Word插件。如何以编程方式替换段落中的文本?我需要将\r替换为\t\r行。

首次尝试:

Globals.ThisAddIn.Application.ActiveDocument.Paragraphs[nr].Range.Text = 
    Globals.ThisAddIn.Application.ActiveDocument
    .Paragraphs[nr].Range.Text.Replace("\r", "\t\r");

它仅适用于文本,但如果我在段落中有链接或内容,则它不起作用。

第二次尝试:

Globals.ThisAddIn.Application.ActiveDocument.Paragraphs[nr].Range.Find.Execute("\r");
Globals.ThisAddIn.Application.Selection.Text = "\t"

这就像1

一样失败

第三次尝试:

Globals.ThisAddIn.Application.Selection.Find
    .Execute("\r", Wrap: Microsoft.Office.Interop.Word.WdFindWrap.wdFindContinue);

Word.Find findObject = Application.Selection.Find;
//   findObject.ClearFormatting();
findObject.Text = "\r";
//   findObject.Replacement.ClearFormatting();
findObject.Replacement.Text = "\t\r"

object replaceAll = Word.WdReplace.wdReplaceAll;
findObject.Execute(ref missing, ref missing, ref missing, ref missing, ref missing,
    ref missing, ref missing, ref missing, ref missing, ref missing,
    ref replaceAll, ref missing, ref missing, ref missing, ref missing);

这再次失败,因为删除1段(将段落[1]和段落[2]中的文字放入一段)

1 个答案:

答案 0 :(得分:0)

对于未来的读者:

可以使用OpenXml。 OpenXml can be extracted直接来自addin的代码。这种方法是通用的,它允许更快,更精确地操作文档。