2017-07-26 142 views
0

我想修改word文檔並在某些特定位置插入數據(我有一個模板文檔,我必須準備好並填充所有空格)。我是使用Microsoft.Office.Interop.Word庫,直到現在我只是想出如何在文檔的末尾插入文本,我也會寫下代碼,所以也許有人可以幫助我。謝謝!在Word文檔中使用c編寫特定位置的文本#

 private void button1_Click(object sender, EventArgs e) 

     string str = null; 
     OpenFileDialog dia = new OpenFileDialog(); 
     if (dia.ShowDialog() == System.Windows.Forms.DialogResult.OK) 
     { 
      str = dia.FileName; 
      Microsoft.Office.Interop.Word.Application app = new Microsoft.Office.Interop.Word.Application(); 
      Microsoft.Office.Interop.Word.Document doc1 = app.Documents.Open(str); 

      object missing = System.Reflection.Missing.Value; 
      doc1.Content.Text += "Merge?"; 
      app.Visible = true; 
      doc1.Save(); 
      this.Close(); 

       } 
      } 

回答

0

可以使用Range對象在特定的位置插入文本。 msdn

doc1.Range(0, 0).Text = "Hello World"; 

如果您有一個模板,並插入文本的位置總是在相同的位置,你也可以使用Bookmarkmsdn

[更新]

下面是一個完整例如通過書籤添加文本到Word文檔:

Application app = new Microsoft.Office.Interop.Word.Application(); 
Document doc = app.Documents.Open(@"your file"); 
string bookmark = "BookmarkName"; 

Bookmark bm = doc.Bookmarks[bookmark]; 
Range range = bm.Range; 
range.Text = "Hello World"; 
doc.Bookmarks.Add(bookmark, range); 

通過這一解決方案,書籤將不會被刪除,您可以使用相同的代碼再次添加/修改它。

+0

還有一種方法可以找到我想插入文本的每個位置的座標? thx – user3720015

+0

如果位置始終相同,則可以在文檔中添加佔位符,並使用c#中的'bookmark'對象添加文本。看到這個例子https://msdn.microsoft.com/en-us/library/ad6ks7k0.aspx – Ben

+0

對不起,因爲我再次問你,但你知道如何刪除上次插入的書籤中的文本嗎?我的意思是我第一次插入「一些文本」然後下一次我啓動程序時會在文本「一些文本」之後插入文本「其他文本」,所以它看起來像「一些文本其他文本」,所以我如何刪除我插入以前的書籤?thx – user3720015

相關問題