`
dyyaries
  • 浏览: 80701 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Word2007使用MailMerge功能打印合同外挂程序

    博客分类:
  • C#
阅读更多



首先,准备一份word版的合同文件模板,同时通过MailMerge功能配置好数据源。(里面的相关信息是要通过MailMerge功能从数据源来显示的).

打开文档,选择‘邮件’-‘选择收件人’-‘从现有列表’,并拷贝出 配置好的数据源文件路径:

例如:D:\Users\administrator\My Documents\我的数据源\10.79.1.247_sqlserver2008.odc




 
 
在Visual Studio中新建一个windows form项目,并添加对Office.Word的引用

编写一个简单界面 如:



然后要做的就是 

1.在Form1的load事件中用Word的API打开合同模板文档

2.并连接数据源

3.开启‘预览结果’

4.保护文档为不能编辑
5.控制翻页

6.调用打印

7.关闭文档

 

相关步骤的代码:

第1步.

object strFileName = @"e:\\还款协议.docx";
            String ds = "D:\\Users\\administrator\\My Documents\\我的数据源\\10.79.1.247_sqlserver2008.odc";
            
            wrdApp = new Microsoft.Office.Interop.Word.Application();
            wrdApp.Visible = true;

            // Open document.
            wrdDoc = wrdApp.Documents.Open(ref strFileName, ref oMissing, true, ref oMissing, ref oMissing, ref oMissing,
                            ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing,
                            ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing);

第2步.

wrdDoc.MailMerge.OpenDataSource(ds, ref oMissing, ref oMissing, ref oMissing, ref oMissing, //打开数据源
                            ref oMissing, ref oMissing,ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, 
                            ref oMissing,ref oMissing, ref oMissing);

 

第3步.

wrdDoc.MailMerge.ViewMailMergeFieldCodes = 0; //开启预览

 

第4步.

wrdDoc.Protect(WdProtectionType.wdAllowOnlyReading, Type.Missing, //文档不可编辑
                Type.Missing, Type.Missing, Type.Missing);

 第5步.

分别编写‘上一页’‘下一页’的click事件

private void button1_Click(object sender, EventArgs e)
        {
            wrdDoc.MailMerge.DataSource.ActiveRecord = WdMailMergeActiveRecord.wdNextRecord;
            recordIndex += 1;
            enableButtons();
        }
        private void button2_Click(object sender, EventArgs e)
        {
            wrdDoc.MailMerge.DataSource.ActiveRecord = WdMailMergeActiveRecord.wdPreviousRecord;
            recordIndex -= 1;
            enableButtons();
        }

 第6步.

直接调用Document的printout方法,具体我没实现了

wrdDoc.PrintOut(ref oMissing, ref oMissing, ref oMissing, 
                ref oMissing, ref oMissing, ref oMissing, ref oMissing, 
                ref oMissing, ref oMissing, ref oMissing, ref oMissing, 
                ref oMissing, ref oMissing, ref oMissing, ref oMissing, 
                ref oMissing, ref oMissing, ref oMissing);

 

第7步.

private void Form1_FormClosing(object sender, FormClosingEventArgs e)
        {
            wrdDoc.Close(false, ref oMissing, ref oMissing);
            wrdApp.Quit(false, ref oMissing, ref oMissing);
            wrdApp = null;
        }

 

完成之后运行程序,会打开合同模板文档,文档为不可编辑状态,只能通过‘上一页’和‘下一页’可以在模板中插入不同人员信息,关闭程序后合同文档也会一起关闭

效果如下:

 

 

  • 大小: 29.1 KB
  • 大小: 127.5 KB
  • 大小: 12.5 KB
  • 大小: 64.6 KB
分享到:
评论

相关推荐

    word插件-mail-merge

    在标题提到的"word插件-mail-merge",我们聚焦于如何利用插件来增强这个功能。邮件合并简化了批量发送定制信息的过程,特别是在商业环境中,可以显著提高效率。 邮件合并的步骤通常包括以下部分: 1. **创建主文档...

    基于WORD实现打开WORD打印WORD填充数据并关闭WORD的功能

    在填充Word数据方面,Word提供了强大的Mail Merge功能,可以用于批量替换文档中的占位符,比如姓名、地址等,这在生成个性化信函或报告时非常有用。假设我们有数据源(如Excel表格或CSV文件),可以进行以下操作: ...

    Mail merge邮件合并实例

    在【Mail merge邮件合并实例】中,我们关注的是如何使用Aspose库在.NET环境中实现这一功能。 Aspose是一个强大的文件处理组件,提供了多种编程语言的支持,包括C#。它允许开发者在不依赖Microsoft Office的情况下,...

    Word批量打印,数据自动写入Word模板中

    4. **数据写入模板**:遍历数据库中的每一行数据,使用`MailMerge`方法将数据字段替换为模板中的占位符。例如,如果模板中有"{Name}",则用实际的姓名数据替换。 5. **保存并打印文档**:每次替换完成后,保存为新...

    aspose模板导出word及pdf打印

    这可以通过使用MailMerge功能实现,它允许你在模板文档中定义数据域,然后绑定到数据源(如CSV、数据库或对象集合)进行填充。 3. **导出Word文档**: 在完成模板操作后,你可以使用Aspose.Word API将处理后的文档...

    Aspose.Word域套打示例

    - 使用`MailMerge`方法,传入数据源(如DataTable、List或其他自定义类型),Aspose.Word会自动匹配并替换文档中的域内容。 3. **域套打流程** - 创建数据源:这可以是任何可遍历的数据结构,如数组、列表或...

    mailmerge:该库提供了少数API,可以使用不同的邮件服务发送各种电子邮件

    MailMerge旨在提供一些API,以使用不同的邮件服务提供商(例如mailgun,pepipost和sendgrid)发送各种电子邮件,包括(批处理邮件,单个邮件)。 它还定义了使用不同的邮件服务重新发送失败的电子邮件的策略。 要求 ...

    Access VBA套打Word 模板(三中方法)

    在Access VBA中,我们可以通过调用Word的MailMerge对象和方法来实现这一过程。首先,设置好Word的邮件合并源,然后运行合并操作,将Access表中的记录逐条插入到Word模板中。此方法适用于大规模的批量打印,例如制作...

    C#控制Word实现邮件合并功能

    本主题探讨的是如何利用C#控制Microsoft Office的Word应用程序来实现邮件合并功能。邮件合并是一项强大的工具,它允许程序员批量生成个性化文档,如信件、报告或电子邮件,而无需手动编辑每个文件。下面我们将深入...

    pdf-mailmerge:简单的命令行python邮件合并到pdf

    在使用`pdf-mailmerge`之前,确保你的系统已经安装了Python 3.x。此外,这个工具依赖于几个Python库,包括`PyPDF2`用于处理PDF,`pandas`用于数据操作,以及`click`用于构建命令行界面。你可以通过`pip`来安装这些...

    word VBA邮件合并及批量生成单个文档

    首先,我们需要设置邮件合并对象,使用 `MailMerge` 对象来实现邮件合并功能。然后,我们可以使用 `DataSource` 对象来访问数据源,并使用 `RecordCount` 属性来获取记录的数量。使用 `For` 循环,我们可以遍历每一...

    mailmerge:一个简单的命令行邮件合并工具

    mailmerge使用纯文本文件和。 目录快速开始$ pip install mailmerge$ mailmerge mailmerge将指导您完成该过程。 不用担心,默认情况下它不会发送真实的电子邮件。安装系统范围内的安装。 $ pip install mailmerge ...

    Aspose.Words6.5操作WORD实例

    在填充Word模板时,通常会使用到Aspose.Words的Mail Merge功能。Mail Merge是一种将数据源(如数据库、CSV文件或XML)与Word文档模板结合的技术,以便快速生成大量个性化文档。以下是如何使用Aspose.Words进行Mail ...

    邮件合并实例

    本文将详细介绍如何使用Office 2003中的邮件合并功能来制作学生月考成绩单。 #### 二、准备工作 **1. 建立数据源** 数据源是指包含用于邮件合并的数据文件,通常是一个Excel表格。在这个例子中,数据源是一个...

    MailMerge:使用pywin32 lib用python编写的电子邮件爆炸邮件合并程序。 使用Excel,Outlook和Word

    使用Excel,Outlook和Word。 这是一个独立的Windows应用程序-我已包含py2exe脚本,该脚本可将程序构建为可执行文件。 该工具是针对房地产经纪人的,您可以从MOCK_DATA工作表中看到,它包含地址和名称的列表。 ...

    C# NPOI导出Excel,Words转PDF

    通过使用Field或MailMerge,可以将外部数据源(如数据库或CSV文件)的数据插入到Word模板中,生成定制的PDF文档。例如,假设你有一个名为"Data.csv"的文件,其中包含一些要合并的数据,你可以这样做: ```csharp ...

    VBA实现word邮件合并打印并调用系统打印机窗口

    在这个特定的VBA脚本中,它主要用于实现Word文档的邮件合并功能,结合数据库数据进行打印,并控制打印机窗口的交互。下面我们将深入探讨这个脚本的关键部分及其涉及的知识点。 首先,`Sub shuaxin(control As ...

    WinMerge(文件比较)

    下面我们将深入探讨WinMerge的核心功能、特性以及使用方法。 ### 1. **核心功能** - **文件对比**:WinMerge能够对比两个文本文件或目录的差异,无论是单个文件还是整个文件夹,都能清晰地展示出它们的异同之处。 ...

    mailmerge:用于文档邮件合并的 PHP 库与模板提供程序、转换器、占位符集合和解析器引擎

    邮件合并是一个 PHP 库,用于生成具有邮件合并支持的文档(使用数据提供程序,例如数据库实体、CSV 文件、电子表格等)。 它利用模板提供程序、转换器、占位符集合和解析器/生成器引擎。要求仅支持 PHP 5.4 及以上...

    word模板文件temp.docx

    在Aspose.Word for Java中,你可以使用`MailMerge`类来执行合并操作。首先,你需要加载模板文件,然后设置每个MergeField对应的值。对于表格,你可以使用`MailMerge.ExecuteDataTable()`方法,将一个包含所有数据的...

Global site tag (gtag.js) - Google Analytics