2016-07-14 1 views
0

私は、C#コードを使用して塗りつぶす必要があるいくつかのフォームフィールドを含むワードドキュメントテンプレートを持っています。以下Microsoftワークオートメーションを使用して動的な表の行を追加するC#

文書画像 enter image description here 以下のコードは、文書のフォームフィールドに到達し、充填するために使用 しかし、私は、テーブルセクションに達したときに時々行を充填する必要がさは、予め内部に定義されているものよりもされていますテンプレート。

赤色のマークされた領域は、データで塗りつぶして必要な数の行を作成するテーブルです。

私はデータを埋めるために使用したコードは、私は誰かが私が望むものを達成するためにどのように私を助けることができると思います

 string fileName = Path.GetTempFileName(); 
     File.WriteAllBytes(fileName, Properties.Resources.DocumentTemplate); 
     Word.Application word = new Word.Application(); 
     Word.Document doc = new Word.Document(); 
     doc = word.Documents.Add(fileName); 
     doc.Activate(); 


     doc.FormFields["file_num"].Range.Text = "some text"; 
     doc.FormFields["fam_size"].Range.Text = "another text"; 
     doc.FormFields["nationality"].Range.Text = "another text"; 
     for(int i =0; i< rowsInDatabaseCount; i++) 
     { 
      //i don't know how to add row and reach each form field inside 
     } 

です。

はそれを処理するための複数の方法があります

答えて

1

...事前にありがとうございます。 1)データがデータベースから来ているので、1つの方法はInsertDatabaseメソッドを使用することです。

2)ブロックをタブまたはコンマ区切りのテキストとして挿入し、ConvertToTable()メソッドを使用してテーブルに変換できます。

3)(表の)行と列のコレクションと.Addメソッドを使用して新しい行を追加することができます。

4)テンプレートをXSLとして作成し、そのXSLを使用してデータ(XML)を変換して最終的なHTMを生成することができます。 WordはHTMファイルを開くことができます。

(これらすべてのオプションは、「再開」、「テスト結果」...作成したものと同様のレイアウトで作成されました)最終オプション4は、エンドユーザーができる最も動的なものですシンプルなHTMLエディタを使用して独自のテンプレートを定義することができます。

関連する問題