2011-09-13 27 views
0

我試圖寫一個文字加載項(用C#)搜索文檔的所有出現的某些文本,並對文本的部分進行了一些更改它認定。使用Interop Range.Find的問題,當範圍包含表

我創建了一個循環,它使用Range.Find獲取文檔中包含一段文本的所有範圍,並使用它返回的範圍對象稍後執行操作。但是,當文檔中有表格時會出現問題。

在我的第一次嘗試中,我只是不斷創建一個新的範圍,從我上次找到的出現的末尾到文檔的末尾,然後再次搜索該新範圍,直到它不返回找到的值。當我用一個包含表格的文檔做到這一點時,它只是卡在表格內並創建了一個無限循環。

然後,我找到這篇文章:http://www.codeproject.com/KB/office/wordaddinpart1.aspx,當使用本文描述的Find函數時,它通過一個表成功繼續,但不幸的是沒有成功獲取該表中的所有值,我需要它去做。

有沒有人有任何關於解決這個問題的建議?我見過一些人談論有這個問題,但沒有解決方案。

回答

0

我會建議使用OpenXml SDK。辦公室interop是一個遺物。下面是介紹如何使用OpenXML的SDK來搜索一個Word文檔中的文章:

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

下面是一個SO問題,討論瞭如何使用OpenXML的SDK中的Word文檔中替換圖像:

Replace image in word doc using OpenXML

+0

我想使用Interop,因爲它似乎易於使用加載項,但我認爲你是對的 - 它太過時了。現在就試試OpenXml。感謝您的建議! –