2011-10-31 14 views
0

だから、入力フィールドを含むdocという単語を作ろうとしています。ユーザーが完了してサーバーに文書を送信すると、すべての項目を読み取り、残りの部分をすべてスキップしたいと考えています。単語入力フィールドを読み込んでいますか?

アプリケーションからこのタグを読み取る方法がわかりません。

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 preferrably – Anders

+0

ok - 下の私の答えを参照してください... – Yahia

答えて

1

オフィス相互運用機能は、(ASP.NETまたはWindowsサービスまたは類似のような)サーバーのようなシナリオでMSによってがサポートされていない - http://support.microsoft.com/default.aspx?scid=kb;EN-US;q257757#kb2を参照してください!あなたが望むものを達成するために、いくつかのライブラリを使用する必要があります


(商用)EDIT - コメントどおり:

以下は、通常のアプリケーションでのみ動作することをご確認ください(ASではなく。!P.NETなど)...

あなたは基本的には()docであるあなたのコード内DocumentFieldsコレクションを通過する必要があります...いくつかの有用なリンクがあります:

+0

はサポートされていませんがまだ実行可能です。私はちょうどクライアントアプリケーションでそれを使用したいと言いましょう。 – Anders

+0

「doable」とは、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(); 
関連する問題