我試圖從C#中訪問word應用程序。在word中的特定文本之後添加文本
我想在一個文字文件中找到特定文本後立即寫一段文字。
例如,如果我在word文檔中找到文本/標題「地址」,在這個下面,我會將完整的地址寫爲內容。
我試圖通過獲得光標的控制並將其放置在找到地址後,但我無法做到這一點。任何人都可以請求一樣的方法。
我試圖從C#中訪問word應用程序。在word中的特定文本之後添加文本
我想在一個文字文件中找到特定文本後立即寫一段文字。
例如,如果我在word文檔中找到文本/標題「地址」,在這個下面,我會將完整的地址寫爲內容。
我試圖通過獲得光標的控制並將其放置在找到地址後,但我無法做到這一點。任何人都可以請求一樣的方法。
聽起來好像要在預定位置將文本插入文檔中。如果這是真的,那麼你應該考慮使用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部分找到此庫。
您好, 非常感謝您的幫助。 實際上,我不想替換書籤文本,我試圖在特定文本之後插入段落,該文本可以出現在整個單詞doc中的任何位置。所以,如果我能在所需的單詞之後得到下一行的範圍,我可以在這個單詞之後放置我的內容。 你能否幫我一樣。 –
書籤的Range屬性具有一個名爲InsertAfter的方法,該方法將允許您插入文本。 – RogerN
你有什麼代碼?你卡在哪裏或有問題? –