TX Text Control文字处理教程(12)MS Word中字段的导入导出操作

Text Control 中的域可以与MS Word中的域进行相互的导入和导出操作,Text Control中的ApplicationField类为获取/设置域的数据/参数提供了相应的公共接口。下面将结合MS Word中最常用的MERGEFIELD 和 FORMTEXTBOX功能来讲解域相关的操作。
相应的源代码可以在TX Text Control.NET的安装目录中找到:
        Samples\WinForms\VB.NET\ ApplicationFields
        Samples\WinForms\CSharp\ ApplicationFields
(一)实现MERGEFIELD 类
        在MS Word和RTF文档中会经常用到合并域,通过合并域能在模板设计器中为文本域添加一些附加信息,例如:可以指定文本应该显示在文本域的前面还是后面,或者指定文本的显示格式。为了能够处理这些字段和相应的功能,示例程序中实现了三个不同的类:
•        MergeField
•        MergeFieldCollection
•        CollectionSync
        MergeField类继承与TextField,并扩展了相应功能。通过MergeField可以得到该类所处理的ApplicationField的引用。此外,MergeField包含下面的这些属性:
•        TextFormat
•        TextBefore
•        TextAfter
•        Mapped
•        MergeFieldName
•        PreserveFormatting
•        VerticalFormatting
当设置MergeField的TextBefore属性时,会相应地设置ApplicationField的Text属性,此外,新的设置会以一种合适的值保存在Parameters属性中。
        MergeFieldCollection是一个MergeField的集合类,它实现了标准集合类型的公共属性和方法。
        最后,需要实现TextControl和MergeFieldCollection集合中各个对象的同步。当ApplicationField集合改变时都需要进行同步操作。这个类型提供了两个重要的事件,用于监听TextControl中的变化:TextFieldCreated 和 TextFieldDeleted。
        启动示例程序之后,点击File/Load菜单加载示例文档,该文档包含很多合并域字段,将输入光标定位到一个存在的字段中,例如《COMPANY》字段:

从MergeField菜单中选择Edit..菜单项,打开合并域字段的编辑对话框:

在这个对话框中,可以处理MergeField的所有属性,选中“Text to be inserted after”复选框,然后输入相应的文字,这些文本将被插入到该字段的后边,点击【OK】按钮关闭设置该设置对话框。
通过Merge/Merge fields...菜单打开客户数据表格,选中一条客户信息,点击【Merge】按钮将数据库中数据合并到文档中。
        以上操作时通过循环遍历MergeFieldCollection中的字段,并替换字段的Text属性,代码如下:

[C#] DataGridViewRow curRow = dataGridView1.SelectedRows[0]; foreach (MergeField curMergeField in m_mergeFieldCollection) { foreach (DataGridViewTextBoxCell curCell in curRow.Cells)   { if (curCell.OwningColumn.Name == curMergeField.MergeFieldName)       curMergeField.Text = curCell.Value.ToString();   } }

(二)实现FORMTEXT类
FormText字段在MS Word中用来创建可填充的文档。在许多应用系统中,例如文档自动化,这些字段必须是完全自动可读的。ApplicationField对象就像是这些字段所有属性的一个容器。
        为了与第一个例子有所区别,这个例子中为FormText字段实现了一个类型,该类型不是继承于TextField。在该示例中没有需要同步的集合类型,每次编辑一个FORMTEXT类型的ApplicationField,都会创建一个FormText对象:

[C#] FormText curFormText = new FormText(textControl1.ApplicationFields.GetItem());

ApplicationField的应用被存储在FormText实例中,与第一个例子类型,ApplicationField通过get或set访问与FormText属性相对应的Parameters。可以通过对话框来改变特定窗体文本字段的属性设置: 


(三)创建、合并MS Word 模板
邮件合并是TX Text Control最典型的应用场景。将TX Text Control中与MS Word一致的字段功能与TX Text Control .NET Server的自动邮件合并组件相结合,可以构建出高性能的邮件合并应用系统。
        TX Text Control不仅支持合并操作,而且提供了所见即所得的模板编辑器。
        本示例工程主要演示TX Text Control的邮件合并能力,主要操作步骤如下:
•        Database binding
•        Adding fields
•        Preview
•        Export the merged document
该功能与MS Word 的邮件合并功能极为相似,而且还提供源码,完全支持用户自定义操作。下面讲解如何使用该示例。
1、        链接数据库
•        点击recipients按钮或者从Mail Merge菜单中选择Recipients菜单项。

•        在打开的对话框中,定位到address.xml文件,并打开该文件。
通过点击工具栏中的下拉框查看加载的数据表,如果该数据库包含多个数据表,你可以只选择你需要的数据表,然后合并字段将制动添加到Insert Field下拉按钮中。

2、插入合并字段
•        从下拉列表中选择一些字段插入到文档中,插入字段的位置就是当前输入光标的位置。

•        通过工具栏中的三个按钮来切换字段的显示方式:

•        字段编码:该视图显示字段的MS Word 字段编码
•        字段文本:该视图显示结果或者字段名称
•        预览:该视图显示字段数据库内容合并之后的结果
•        点击预览按钮,第二个数据库导航工具栏便可使用,你可以通过查看字段所对应数据库中的实际值。

3、导出文档
最后,点击导出按钮,开始数据合并操作。

这实际是打开一个新的窗体,窗体包括一个TX Text Control和一个简单的工具栏。通过DocumentServer.MailMerge组件在后台完成模板与数据库中数据合并的工作,这一个合并操作只需3行代码:

[C#] mailMerge.TextComponent = tx; mailMerge.LoadTemplateFromMemory(Document, TXTextControl.DocumentServer.FileFormat.InternalUnicodeFormat); mailMerge.Merge(DataTable, true);

TX Text Control试用版下载

时间: 2024-10-02 23:58:19

TX Text Control文字处理教程(12)MS Word中字段的导入导出操作的相关文章

TX Text Control文字处理教程(7)邮件合并

邮件合并功能与之前的提到的将TX文档全部存入数据库有所不同,邮件合并功能是将数据库中特定字段插入到模板文档的特定位置.与此同时,本章节还会演示在邮件合并功能的基础上添加打印功能.以及如何创建邮件合并所需的模板文档. 本章节相应的源代码可以在TX Text Control.NET的安装目录中找到:         Samples\WinForms\VB.NET\MailMerge         Samples\WinForms\CSharp\MailMerge 第一步:合并数据库数据和文本

TX Text Control文字处理教程(8)使用超链接

本章节将演示如何在文档中添加超链接和锚点,以及如何响应超链接的单击操作. 本章节相应的源代码可以在TX Text Control.NET的安装目录中找到:         Samples\WinForms\VB.NET\ Hyperlinks         Samples\WinForms\CSharp\ Hyperlinks 第一步:插入超链接         在这个示例程序中将在文档里插入一个超链接,并将该文档保存为HTML格式,便于在浏览器中显示.         为了在文档中插入超

TX Text Control文字处理教程(5)数据库操作

TX Text Control可以与任意数据库建立连接,并将进行格式化文本的存储.你可以将整个文档当做一条数据进行保存,同时也可以将文本从数据库中加载到一个单元格或者标记文本域中.一些典型的应用系统通常拥有以下功能,邮件合并.报表生成.格式化数据掩码输入,而且在商业应用系统中都是通过数据库中的信息来生成相应的文档. 本章将演示如何将Text Control中的内容以RTF格式的文本存储到数据库中.本章节相应的源代码可以在TX Text Control.NET的安装目录中找到: Samples\W

TX Text Control文字处理教程(10)创建报价单

该示例程序演示如何在办公系统中使用Text Control.办公系统的主要功能就是根据数据库中的数据来创建所需的文档.例如,根据地址信息数据库和商品信息数据库来创建一个订单.         示例程序分两步完成,第一步只包含从地址信息数据库中取的数据,第二步中才添加其它的功能. 本章节相应的源代码可以在TX Text Control.NET的安装目录中找到:         Samples\WinForms\VB.NET\ Quote Generator         Samples\Wi

TX Text Control文字处理教程(2)- 文件操作

本章主要演示如何使用 TX Text Control .NET 加载和保存文件. 该章节相应的源代码可以在TX Text Control.NET的安装目录中找到:         Samples\WinForms\VB.NET\ Files         Samples\WinForms\CSharp\ Files 第一节:使用集成对话框 打开和保存文件最便捷的方法就是调用Load和Save方法,而且无需传入任何参数.通过这种方法,只需一行代码就可以打开文件对话框,选择文件类型和文件之后就

TX Text Control文字处理教程(1)- 使用Visual Studio 2008开发产品

本章主要演示如何使用TX Text Control.NET 快速开发一个文字处理器. 该文字处理器实现了以下功能,打开和保存文件.剪贴板操作.文字和段落格式设置.标尺.状态栏以及键盘和鼠标操作. 该章节相应的源代码可以在TX Text Control.NET的安装目录中找到:         Samples\WinForms\VB.NET\Simple         Samples\WinForms\CSharp\Simple 该章节使用的到的控件如下:         TXTextCo

TX Text Control文字处理教程(4)标记文本域

标记文本域是在文本中插入的一些标记,在文字处理器中可以通过标记文本来实现非常广泛的文字处理功能.例如:         邮件合并         电子表格中的计算域         书签         自动生成表格内容和索引         超文本链接和锚点 标记文本域可以由任意字符组合而成,TX 中最多可以包含65535个标记文本域,TX会维护这些文本域的位置和编号信息,同时还可以进行加载.保存和剪贴板操作. 该章节相应的源代码可以在TX Text Control.NET的安装目录中找到:

TX Text Control文字处理教程(9)XML文件

该章节主要介绍如何在Text Control中使用XML文件,包括如何打开XML文件,以及如何与CSS文件及DTD文件协同工作. 本章节相应的源代码可以在TX Text Control.NET的安装目录中找到:         Samples\WinForms\VB.NET\ XMLBasics         Samples\WinForms\CSharp\ XMLBasics (一)示例程序 示例程序中只有一个[Open File...]菜单项,源代码与其它Text Control程序并

TX Text Control文字处理教程(6)通过代码编辑和格式化文本

在许多应用系统中通过代码来编辑文本是一个必不可少的功能,例如:将多个小文件与数据库数据合并生成报表.电子购物时需要创建订单并作为HTML文件进行发送.使用Text Control,这些操作可以使用鼠标操作或者编码的方式很容易的实现. 本章节相应的源代码可以在TX Text Control.NET的安装目录中找到: Samples\WinForms\VB.NET\ Editing from code Samples\WinForms\CSharp\ Editing from code 第一节:选择