在单词

时间:2015-06-01 13:49:34

标签: c# .net com ms-word activex

我正在尝试从C#访问word应用程序。

我想在word文件中找到特定文本后立即写一个段落。

例如,如果我在word doc中找到一个文本/标题“Address”,在下面我将把完整的地址写为内容。

我试图通过控制光标并在找到地址后放置它来解决这个问题,但我无法做到。任何人都可以为此采取相应的方法。

1 个答案:

答案 0 :(得分:0)

听起来您想要将文本插入到预定位置的文档中。如果这是真的那么你应该考虑使用Word的书签功能,而不是搜索像“地址”这样的任意文本。您可以在Word文档中定义书签名称(使用“插入”>“书签”命令)。可以从C#轻松访问书签,允许您在该位置插入或替换文本。

例如,创建一个新的Word文档并输入一些任意文本。选择要替换的文本,然后单击插入>为书签“BOOKMARK1”添加书签并命名。保存并关闭文档。您现在可以使用以下代码替换文本:

var app = new Microsoft.Office.Interop.Word.Application();
var document = app.Documents.Open("c:\\temp\\interoptest.docx");
document.Bookmarks["BOOKMARK1"].Range.Text = "This text has been replaced.";
document.Save();
app.Quit(SaveChanges: false);

请注意,您需要添加对Microsoft Word对象库的引用才能编译上述代码。在最新版本的Visual Studio中添加引用时,可以在COM部分下找到此库。