0

Word テンプレートを読み取り、差し込み印刷機能を使用してそのコピーを n 個作成する C# プログラムを作成したいだけです。置き換えるデータは名前とアドレスであり、テンプレートの残りの部分は同じままにする必要があります。誰でもこれを行う方法を教えてもらえますか?

4

3 に答える 3

1

私はこれを Java で行いました - (壊れたリンク)ソース コードを使用したここでの作業例。

アイデアは次のとおりです。MS-Word を使用して、送信するドキュメントを設計および作成します。XML (Word-ML または新しい .docx 形式) として保存します。次に、テキスト エディターを使用して、ドキュメント内のフィールドをプレースホルダー タグ (名前を入力する場所は @@NAME、アドレスは @@ADDRESS など) に置き換えます。タグ名は重要ではありません。

次に、XSLT または単純な文字列ベースの置換関数を使用して置換ロジックを構築し、タグを実際のデータ値に繰り返し置換します。変更された各ドキュメントを保存します。

簡単です。

C# で同じ設計を使用することもできます - 実際にはもっと簡単です。

于 2009-02-26T10:29:58.650 に答える
1

Aspose.Word を使用して、Word オブジェクト モデルを処理することができます。Office を (相互運用機能を使用するために) プログラムを実行する場所にインストールする必要はありません。私は Aspose.Word を使用して Word ドキュメントを生成しています。

Aspose へのリンク: http://www.aspose.com/categories/file-format-components/aspose.words-for-.net-and-java/default.aspx

そして、それはかなりまともに機能します:)

于 2008-11-18T11:31:35.760 に答える
0

差し込み印刷を実行するのか、テンプレートをコピーするのかわかりません。C# についてはお手伝いできませんが、VBA のこのスニペットからアイデアが得られるかもしれません。

 strDir = CurrentProject.Path  

 strMailmergeDataFilename = strDir & Format(Now, "yymmdd_hhnnss") & ".txt"

' Create CSV from database for use with mailmerge '
' This is a separate function that simply exports the sql '
' ExportSQLToCSV SQL, strMailmergeDataFilename '

'Open merge template '
Set objWordDoc = GetObject(strDir & MergeDocumentFilename, "Word.Document")

objWordDoc.Application.Visible = True      

'Format:=0 ''0 = wdOpenFormatAuto'
'Add the data source '
objWordDoc.MailMerge.OpenDataSource _
    Name:=strMailmergeDataFilename, ConfirmConversions:=False, _
    ReadOnly:=False, LinkToSource:=True, AddToRecentFiles:=False, _
    PasswordDocument:="", PasswordTemplate:="", WritePasswordDocument:="", _
    WritePasswordTemplate:="", Revert:=False, Format:=0, _
    Connection:="", SQLStatement:="", SQLStatement1:=""

'Type some text at a bookmark, you could use .range property ' 
Selection.Goto What:=wdGoToBookmark, Name:="signaturetext"
Selection.TypeText Text:="You are here"

'Run mailmerge '
objWordDoc.MailMerge.Destination = 0 '0 = wdSendToNewDocument'

objWordDoc.MailMerge.Execute

objWordDoc.Application.ActiveDocument.PrintPreview
于 2008-11-19T21:07:15.440 に答える