2011-10-31 110 views
0

好吧,所以即時通訊設法使一個文字包含輸入字段。當用戶完成併發送記錄到服務器我想閱讀所有theese領域,跳過所有其餘的..閱讀單詞輸入字段?

我有麻煩定位如何從我的應用程序讀取theese標籤。

Inputfields

示例模板可以在這裏找到:Here

我想是來讀取每個標籤的文字並進行保存。

Microsoft.Office.Interop.Word.Application ap = new Microsoft.Office.Interop.Word.Application(); 

     try 
     { 

      Document doc = ap.Documents.Open(txtFile.Text, ReadOnly: true, Visible: false); 
      doc.Activate(); 


      //What to do here? 


      ap.Documents.Close(SaveChanges: false, OriginalFormat: false, RouteDocument: false); 

     } 
     catch (Exception ex) 
     { 
      txtRes.Text += "Exception Caught: " + ex.Message + Environment.NewLine; 
     } 
+0

是您的ASP.NET應用程序或Windows服務或類似的? – Yahia

+0

ASP.NET優選 – Anders

+0

好的 - 請參閱下面的答案...... – Yahia

回答

1

辦公室互操作是不支持服務器般的場景(如ASP.NET或Windows服務或類似)由MS - 見http://support.microsoft.com/default.aspx?scid=kb;EN-US;q257757#kb2

您將需要使用一些庫來實現你想要的:

編輯 - 按評論:

請注意以下情況僅適用於正常應用(不適用!P.NET等)...

你基本上需要經過Fields集合Document的(在你的代碼是doc)......一些有用的鏈接爲:

+0

不支持,但仍然可行。比方說,我只是想在客戶端應用程序上使用它。 – Anders

+0

「可行」意味着您將不得不規避一大堆問題,包括自Vista以來收緊的安全措施!請閱讀第一個鏈接! – Yahia

+0

OK,然後不認爲這是一個服務器應用程序,請(如果你能)提供一個答案如何通過客戶端應用程序來做到這一點。請參見我的例子代碼,我懷疑 – Anders

0

可能會有所幫助:

using Word = Microsoft.Office.Interop.Word; 
    ...  

     Word.Application word = new Word.ApplicationClass(); 
     object miss = System.Reflection.Missing.Value; 
     object path = @"D:\test.doc"; 
     object readOnly = false; 
     Word.Document document = word.Documents.Open(ref path, ref miss, ref readOnly, ref miss, ref miss, ref miss, ref miss, ref miss, ref miss, ref miss, ref miss, ref miss, ref miss, ref miss, ref miss, ref miss); 

     foreach (Word.FormField ff in document.FormFields) 
     { 
      MessageBox.Show(ff.Name." - ".ff.Result); 
     } 

     document.Close(ref miss, ref miss, ref miss); 
     word.Quit();