2017-05-18 7 views
0

ビジュアルスタジオにMicrosoftの2010アドインプロジェクトがあります。リボンにカスタム機能を備えた新しいタブを作成するためのMSDNガイド。私はいくつかのグーグルを行ってきましたが、C#を使ってブックマークを見つけ、そのブックマーク名をSQLクエリに使用して、それを設定する例はありません。私が扱っている文書には数十のブックマークがあり、何百もの文書があります。このプロセスを自動化することが最優先です。C#を使用してWord 2010アドインでブックマークをプログラムで検索して埋め込む

+0

さて、あなたは[ブックマーク]プロパティからブックマークを取得しています(https://msdn.microsoft.com/en-us/library/microsoft.office.interop.word._document.bookmarks(v) = office.14).aspx) – stuartd

+0

ありがとう@stuartd –

答えて

1

基本的に、ワードドキュメントを自動化したい場合(単語ブックマークを使ってワードドキュメントテンプレートを作成する)

  • コピーテンプレート
  • テンプレートに
  • 作業
  • 保存に必要な形式
  • テンプレートのコピー

あなたが持っている、あなたのワード文書内の交換されている各セクションを削除します。その場所のブックマークを挿入します(エリア内にテキストを入力する最も簡単な方法)。

私はいつもこれを達成するための関数を作成します。そして、ドキュメント内のブックマークを置き換えるために、すべてのテキストだけでなく、パスを渡してしまいます。関数呼び出しは時々長くなることがありますが、それは私のために働きます。

Application app = new Application(); 
Document doc = app.Documents.Open("sDocumentCopyPath.docx"); 


if (doc.Bookmarks.Exists("bookmark_1")) 
    { 
     object oBookMark = "bookmark_1"; 
     doc.Bookmarks.get_Item(ref oBookMark).Range.Text = My Text To Replace bookmark_1; 
    } 
    if (doc.Bookmarks.Exists("bookmark_2")) 
    { 
     object oBookMark = "bookmark_2"; 
     doc.Bookmarks.get_Item(ref oBookMark).Range.Text = My Text To Replace bookmark_2; 
    } 

      doc.ExportAsFixedFormat("myNewPdf.pdf", WdExportFormat.wdExportFormatPDF); 

((_Document)doc).Close(); 
((_Application)app).Quit(); 

このコードは、すべての値を関数に渡す場合を除き、起動してください。

大量のフィールドがある場合は、値を含むオブジェクト/クラスを作成できます。

さらに例が必要な場合は、私もブログ記事を作成していますので、これがあなたのユースケースに対して十分明確でない場合は、もっと詳細があります。

関連する問題