当范围包含表时使用 Interop Range.Find 时出现问题

发布于 2024-12-04 14:19:51 字数 529 浏览 0 评论 0原文

我正在尝试编写一个单词插件(使用 C#)来搜索文档中所有出现的某些文本片段,并对它找到的文本部分进行一些更改。

我创建了一个循环,它使用 Range.Find 来获取文档中包含一段文本的所有范围,并使用它返回的范围对象来进行稍后的操作。但是,当文档中有表格时就会出现问题。

在我的第一次尝试中,我只是不断创建一个新范围,从最后找到的事件的末尾到文档的末尾,然后在该新范围中再次搜索,直到它返回没有找到的值。当我对包含表格的文档执行此操作时,它只是卡在表格内并创建了无限循环。

然后,我找到了这篇文章: http://www.codeproject.com/KB/office/ wordaddinpart1.aspx,当使用本文描述的“查找”功能时,它成功地继续遍历一个表,但不幸的是没有成功获取该表中的所有值,而我需要它这样做。

有人对解决这个问题有什么建议吗?我看到有几个人谈论这个问题,但没有解决方案。

I'm trying to write a word add-in (with C#) that searches a document for all occurrences of certain pieces of text and makes some changes to the sections of text it finds.

I've created a loop that uses Range.Find to get all of the ranges in the document that contain a piece of text and the use the range objects it returns to do the manipulation later. A problem comes up when there is a table in the document, though.

In my first attempt at this, I just kept creating a new range, from the end of my last found occurrence to the end of the document and then searching again in that new range until it returns no found values. When I did this with a document containing a table, it just got stuck inside the table and created an infinite loop.

Then, I found this article: http://www.codeproject.com/KB/office/wordaddinpart1.aspx, and when using the Find function the article describes, it successfully continues on through a table, but unfortunately doesn't successfully grab all of the values within that table, which I need it to do.

Does anyone have any advice about getting around this problem? I've seen a couple people talk about having this problem, but no solutions.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

近箐 2024-12-11 14:19:51

我建议为此使用 OpenXml SDK。 Office 互操作已成为历史。以下文章介绍了如何使用 OpenXml SDK 搜索 Word 文档:

http ://msdn.microsoft.com/en-us/library/bb508261.aspx

这是一个SO问题,讨论如何使用替换Word文档中的图像OpenXml SDK:

使用 OpenXML 替换 Word 文档中的图像

I would suggest using the OpenXml SDK for this. The Office interop is a relic. Here's an article that explains how to use the OpenXml SDK to search a Word document:

http://msdn.microsoft.com/en-us/library/bb508261.aspx

Here's an SO question that discusses how to replace an image in a Word document using the OpenXml SDK:

Replace image in word doc using OpenXML

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文