2009-05-19 36 views
1

Wordテンプレートのフィールドを入力するために、Excelファイルをデータソースとして使用して差し込み印刷を行う方法を知っていた人はいませんか?もし私が...できればWord用のinteropを使いたいのですが、これにはいくつかの難点があります。 誰にもこれに関する構文はありますか?前もって感謝します。C#を使用した差し込み印刷(Excel to Word)

+0

答えが大きく変わるわけではありませんが、どのバージョンのOfficeを使用していますか? – CoderDennis

答えて

3

MS Wordで特定のアクションを自動化する方法を学ぶ非常に便利な方法は、「マクロの記録」を有効にして実際に手動でアクションを実行することです。

VBAマクロを使用すると、これをVB.NETまたはinteropを使用するC#に簡単に変換できます。 Wordで手動でVBAを微調整する傾向があるので、まずinteropレイヤーを使用して.NET言語に変換する前にこれをテストすることができます。

私は差し込み印刷について多くを知らないが、これは私がマクロを記録しながら、生成されたVBAの一部です:

ActiveDocument.MailMerge.MainDocumentType = wdFormLetters 
ActiveDocument.MailMerge.OpenDataSource Name:= _ 
    "c:\Arrays.xlsx", ConfirmConversions:=False, _ 
    ReadOnly:=False, LinkToSource:=True, AddToRecentFiles:=False, _ 
    PasswordDocument:="", PasswordTemplate:="", WritePasswordDocument:="", _ 
    WritePasswordTemplate:="", Revert:=False, Format:=wdOpenFormatAuto, _ 
    Connection:= _ 
    "Provider=Microsoft.ACE.OLEDB.12.0;User ID=Admin;Data Source=c:\Arrays.xlsx;Mode=Read;Extended Properties=""HDR=YES;IMEX=1;"";Jet OLEDB:System database="""";Jet OLEDB:Registry Path="""";Jet OLEDB:Engine Type=37;Jet OLEDB:Database Loc" _ 
    , SQLStatement:="SELECT * FROM `Sheet1$`", SQLStatement1:="", SubType:= _ 
    wdMergeSubTypeAccess 

私はここに完全なコードが含まれていないが、うまくいけば、これはあなたにいくつかを与えますアイデア。

0

Word(少なくとも私が見ているものである2007バージョンで)は、これを箱から出すことができます。データソースとしてExcelファイルを選択するだけです。あなたのコードで何をしようとしていますか?

+0

私はスプレッドシートを取得し、Wordテンプレートを使用して差し込み印刷を実行しようとしています – yeahumok

0

私はthisサードパーティコントロールを使用します。 xlsファイルをデータテーブルに読み込んで、コントロールにマージするように指示することができます。

+0

Wordの差し込み印刷ではExcelファイルを読み取るためのネイティブサポートがあるので、なぜサードパーティコントロールの余分な手順が必要ですか? – CoderDennis

+0

これは、クライアントテンプレートとクライアントデータを照合する自動化プロセスとして実行されます。私たちは、これらのうち数百を一日にします。 – TGnat

関連する問題