2011-10-31 34 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();