- 浏览: 121171 次
- 性别:
- 来自: 西安
文章分类
最新评论
-
wuruxiantu:
http://localhost:8080/blog/uplo ...
mvnForum 一个开源的BBS搭建过程 -
shansheng:
第一个for循环,没看出来原始的和反编译后的区别嘛
java class反编译后的代码还原 -
hhujsj:
顶 对我做的项目很有帮组!!!
J2EE应用:定时器 -
iRoger:
不错,写的很仔细,为什么没人顶呢
J2EE应用:定时器 -
rain16881:
很好很强大啊..边看你这..边看自己的..十分钟就搞好了一个难 ...
java class反编译后的代码还原
blueski推荐 [2006-11-1]
出处:计算机与信息技术
作者:刘金彪 曹海泉 姚国平
摘要 本文提出了Word模板的4种制作方法,并对每种方法的具体制作和使用进行了详细论述,最后比较了4种方法的优缺点和适用场合,并提出了Word模板格式的保护方法。
关键词 Word、模板、定位
Word不但具有无与伦比的图文处理能力,同时也提供了Word层次结构的对象,使用户可以用VBA或者第三方软件开发工具实现文档自动化。COM技术的发展,使得客户程序可以更方面容易的控制服务器程序。硬件速度的大幅提高,使原来制约COM执行速度慢的瓶颈也已不复存在。因此,越来越多的软件系统开始采用Word作为报表输出工具,有的甚至将Word作为数据录入工具。
但是,无论将Word作为报表输出或者录入工具,都涉及到Word中字符定位的问题。一般都是采用制作Word模板的方法来解决字符的定位。本文中所指的模板是一个体现用Word文档,和Word中定义的.dot后缀形式的模板是有区别的。模板的制作共有特殊字符标记法、书签定义法、表格法和域定义4种方法,下面分别论述其制作方法和内容识别技术、对其优缺点进行比较并对共性的问题提供解决办法。以下程序示例都以Delphi语言为主,但对其他语言也同样适用。
1 特殊字符标记法
该方法是在模板中用不常见的特殊字符来表示需要替换的部分,例如符号<#Variable>,<# >是特殊字符,Variable是变量名字,用来区分不同的替换内容。利用该方法制作好的Word模板,只能用来进行写操作,即将特殊字符和变量替换成具体的内容。具体的替换示例如下:
FindText := '<#cgmc>'; //欲查询字符
MatchCase := False;
MatchWholeWord := True;
MatchWildcards := False;
MatchSoundsLike := False;
MatchAllWordForms := False;
Forward := True;
Wrap := wdFindContinue; //是否查询下一个
Format := False;
Replace := True;
MatchKashida:= false ;
MatchDiacritics:= false ;
MatchAlefHamza:= false ;
MatchControl:= false ;
ReplaceWith := '特殊字符标记法' ; //替换字符
with WordDocument1.Range.Find do
begin
execute(FindText, MatchCase, MatchWholeWord, MatchWildcards, MatchSoundsLike, MatchAllWordForms, Forward, Wrap, Format, Replace, MatchKashida, MatchDiacritics, MatchAlefHamza, MatchControl, ReplaceWith);
end;
示例中定义的各变量都是OleVariant类型的变量。以上只是针对一个特殊字符标记进行处理的例子。读者可将本例予查询字符中的“cgmc”换成变量,进行循环查询替换,也可以根据特殊字符<#>进行遍历查询替换,且替换内容不仅可以是字符,也可以是图形,甚至可以是图文混排的内容。这可以通过剪贴板实现。
2 书签定义法
书签原本是作为浏览Word文档时,快速返回原先查看处的一种方法。本文正是利用书签的定位原理,对模板中的特定区域进行识别。利用该方法制作模板的步骤如下:
(1)打开已定义的模板文档,选中需要定义书签的区域。
(2)在插入主菜单中选择书签。
(3)输入书签名选择添加。
一个文档中可定义多个不同的书签。书签定义完成后,在文档正文中不显示,但可以利用Word的书签菜单手动查找或利用代码查找。Word书签的定位及其读写操作示例如下:
tmp1 := wdGoToBookmark;
tmp2 := 'cgmc';
WordApp.Selection.GoTo_(tmp1,EmptyParam,EmptyParam,tmp2); //书签定位
Memo1.Lines.Add(WordApp.Selection.Text);//读操作
tmp1 := wdGoToBookmark;
tmp2 := 'cgmc';
WordApp.Selection.GoTo_(tmp1,EmptyParam,EmptyParam,tmp2); //书签定位
WordApp.Selection.TypeText('书签示例);//写操作
示例中tmp1,tmp2都是OleVariant类型的变量,当然也可以利用BookMarks集合的Count属性对书签进行遍历。利用书签在文档中输出文本时,书签位置上的原有内容会被新内容替换。
3 表格法
利用该方法制作的整个模板本身是由一个或多个表格构成,具体读写内容以单元格索引为依据进行读取。插入表格的具体步骤如下:
(1)在表格主菜单中选择插入\表格。
(2)输入列数和行数,点击确定。
(3)根据模板样式合并或拆分单元格。
模板制作完成后,可根据需要将表格线进行隐藏。单元格内容的具体读写示例如下:
For i := 1 To WordDoc.Tables.Count do //第 i 个表
begin
for j := 1 To WordDoc.Tables.Item(i).Range.Cells.Count do //第 j 个Cell
begin
myCell := WordDoc.Tables.Item(i).Range.Cells.Item(j);
memo1.Lines.add(myCell.Range.Text); //读操作
end;
end;
For i := 1 To WordDoc.Tables.Count do //第 i 个表
begin
for j := 1 To WordDoc.Tables.Item(i).Range.Cells.Count do //第 j 个Cell
begin
myCell := WordDoc.Tables.Item(i).Range.Cells.Item(j);
myCell.Range.Text := ‘表格示例’; //读操作
end;
end;
示例中myCell是Word2000的Cell类型变量。利用表格法制作模板时,可根据需要设置一个或多个表格。无论规则的二维Word表格还是不规则的表格,单元格索引号都遵循从左至右从上到下逐渐增加的顺序,且每个表格的第一个单元格的索引号为1。
4 域定义法
该方法是利用Word中的域的定义来实现字符定位和内容识别。首先定义模板的大体框架,然后在需要定义域的地方插入域。插入域的具体步骤如下:
(1)在插入主菜单中选择域。
(2)选择 “文档自动化”类别。
(3)从域名中选择“DocVariable”。
(4)利用DocVariabel的命名语法定义文档中的域变量。
按Alt+F9可以显示或隐藏域定义代码。一个Word模板中可以定义多个域,多个域之间用变量名来区别。本例中的域定义在Word模板的主体部分(即除了页眉和页脚)。其读写示例分别如下:
For i := 1 to WordDoc.Fields.Count do
begin
If WordDoc.Fields.Item(i).type_ = wdFieldDocVariable then
WordDoc.Fields.Item(i).Result.Text := 'Word文档中域的使用'; //给域付值
end;
For i := 1 to WordDoc.Fields.Count do
begin
If WordDoc.Fields.Item(i).type_ = wdFieldDocVariable then
Memo1.Lines.Add(WordDoc.Fields.Item(i).Result.Text) : //读取所有DocVariable类型的域值
end;
Word文档中域的具体类型共有87种,详细定义可在Delphi中的Word_Tlb.Pas中查阅。在使用域变量时,必须对域类型进行判断。以上所举的例子中都是通过域的遍历来实现指定位置文字的输出和读取,当然也可以通过域变量的名字进行域的识别。具体方法是利用域的Code属性,提取域定义字符串,然后在域定义字符串中查找域变量。需要注意的是:给域赋值时,域中原有的文字不会被新值替换,只是在域中原有的文字后继续添加。
以上4种方法,除特殊字符标记法只能用做Word文档生成之外,其余三种方法既能用作Word文档生成,也能用作利用模板制作的Word文档内容的读取。但是对于利用Word文档作为系统手动录入界面来讲,书签法很容易被用户误删除,域定义法更是很难被用户肉眼识别,且即使识别出来,手动录入也很麻烦。在实际应用中,表格法制作的模板文件一般来讲格式相对稳定,用户除非有意,否则很难误删除。因此表格法制作的模板同其他三种方法相比,更能胜任制作录入界面的工作。
模板文件归根结底是一种具有特殊格式的Word文档,因此很容易被人们修改格式。为了避免模板格式被破坏。可以为Word模板设置密码,具体使用时,手动或用程序输入密码,用程序输入密码的方法为WordDoc.UnProtect,然后打开模板文件进行操作。
出处:计算机与信息技术
作者:刘金彪 曹海泉 姚国平
摘要 本文提出了Word模板的4种制作方法,并对每种方法的具体制作和使用进行了详细论述,最后比较了4种方法的优缺点和适用场合,并提出了Word模板格式的保护方法。
关键词 Word、模板、定位
Word不但具有无与伦比的图文处理能力,同时也提供了Word层次结构的对象,使用户可以用VBA或者第三方软件开发工具实现文档自动化。COM技术的发展,使得客户程序可以更方面容易的控制服务器程序。硬件速度的大幅提高,使原来制约COM执行速度慢的瓶颈也已不复存在。因此,越来越多的软件系统开始采用Word作为报表输出工具,有的甚至将Word作为数据录入工具。
但是,无论将Word作为报表输出或者录入工具,都涉及到Word中字符定位的问题。一般都是采用制作Word模板的方法来解决字符的定位。本文中所指的模板是一个体现用Word文档,和Word中定义的.dot后缀形式的模板是有区别的。模板的制作共有特殊字符标记法、书签定义法、表格法和域定义4种方法,下面分别论述其制作方法和内容识别技术、对其优缺点进行比较并对共性的问题提供解决办法。以下程序示例都以Delphi语言为主,但对其他语言也同样适用。
1 特殊字符标记法
该方法是在模板中用不常见的特殊字符来表示需要替换的部分,例如符号<#Variable>,<# >是特殊字符,Variable是变量名字,用来区分不同的替换内容。利用该方法制作好的Word模板,只能用来进行写操作,即将特殊字符和变量替换成具体的内容。具体的替换示例如下:
FindText := '<#cgmc>'; //欲查询字符
MatchCase := False;
MatchWholeWord := True;
MatchWildcards := False;
MatchSoundsLike := False;
MatchAllWordForms := False;
Forward := True;
Wrap := wdFindContinue; //是否查询下一个
Format := False;
Replace := True;
MatchKashida:= false ;
MatchDiacritics:= false ;
MatchAlefHamza:= false ;
MatchControl:= false ;
ReplaceWith := '特殊字符标记法' ; //替换字符
with WordDocument1.Range.Find do
begin
execute(FindText, MatchCase, MatchWholeWord, MatchWildcards, MatchSoundsLike, MatchAllWordForms, Forward, Wrap, Format, Replace, MatchKashida, MatchDiacritics, MatchAlefHamza, MatchControl, ReplaceWith);
end;
示例中定义的各变量都是OleVariant类型的变量。以上只是针对一个特殊字符标记进行处理的例子。读者可将本例予查询字符中的“cgmc”换成变量,进行循环查询替换,也可以根据特殊字符<#>进行遍历查询替换,且替换内容不仅可以是字符,也可以是图形,甚至可以是图文混排的内容。这可以通过剪贴板实现。
2 书签定义法
书签原本是作为浏览Word文档时,快速返回原先查看处的一种方法。本文正是利用书签的定位原理,对模板中的特定区域进行识别。利用该方法制作模板的步骤如下:
(1)打开已定义的模板文档,选中需要定义书签的区域。
(2)在插入主菜单中选择书签。
(3)输入书签名选择添加。
一个文档中可定义多个不同的书签。书签定义完成后,在文档正文中不显示,但可以利用Word的书签菜单手动查找或利用代码查找。Word书签的定位及其读写操作示例如下:
tmp1 := wdGoToBookmark;
tmp2 := 'cgmc';
WordApp.Selection.GoTo_(tmp1,EmptyParam,EmptyParam,tmp2); //书签定位
Memo1.Lines.Add(WordApp.Selection.Text);//读操作
tmp1 := wdGoToBookmark;
tmp2 := 'cgmc';
WordApp.Selection.GoTo_(tmp1,EmptyParam,EmptyParam,tmp2); //书签定位
WordApp.Selection.TypeText('书签示例);//写操作
示例中tmp1,tmp2都是OleVariant类型的变量,当然也可以利用BookMarks集合的Count属性对书签进行遍历。利用书签在文档中输出文本时,书签位置上的原有内容会被新内容替换。
3 表格法
利用该方法制作的整个模板本身是由一个或多个表格构成,具体读写内容以单元格索引为依据进行读取。插入表格的具体步骤如下:
(1)在表格主菜单中选择插入\表格。
(2)输入列数和行数,点击确定。
(3)根据模板样式合并或拆分单元格。
模板制作完成后,可根据需要将表格线进行隐藏。单元格内容的具体读写示例如下:
For i := 1 To WordDoc.Tables.Count do //第 i 个表
begin
for j := 1 To WordDoc.Tables.Item(i).Range.Cells.Count do //第 j 个Cell
begin
myCell := WordDoc.Tables.Item(i).Range.Cells.Item(j);
memo1.Lines.add(myCell.Range.Text); //读操作
end;
end;
For i := 1 To WordDoc.Tables.Count do //第 i 个表
begin
for j := 1 To WordDoc.Tables.Item(i).Range.Cells.Count do //第 j 个Cell
begin
myCell := WordDoc.Tables.Item(i).Range.Cells.Item(j);
myCell.Range.Text := ‘表格示例’; //读操作
end;
end;
示例中myCell是Word2000的Cell类型变量。利用表格法制作模板时,可根据需要设置一个或多个表格。无论规则的二维Word表格还是不规则的表格,单元格索引号都遵循从左至右从上到下逐渐增加的顺序,且每个表格的第一个单元格的索引号为1。
4 域定义法
该方法是利用Word中的域的定义来实现字符定位和内容识别。首先定义模板的大体框架,然后在需要定义域的地方插入域。插入域的具体步骤如下:
(1)在插入主菜单中选择域。
(2)选择 “文档自动化”类别。
(3)从域名中选择“DocVariable”。
(4)利用DocVariabel的命名语法定义文档中的域变量。
按Alt+F9可以显示或隐藏域定义代码。一个Word模板中可以定义多个域,多个域之间用变量名来区别。本例中的域定义在Word模板的主体部分(即除了页眉和页脚)。其读写示例分别如下:
For i := 1 to WordDoc.Fields.Count do
begin
If WordDoc.Fields.Item(i).type_ = wdFieldDocVariable then
WordDoc.Fields.Item(i).Result.Text := 'Word文档中域的使用'; //给域付值
end;
For i := 1 to WordDoc.Fields.Count do
begin
If WordDoc.Fields.Item(i).type_ = wdFieldDocVariable then
Memo1.Lines.Add(WordDoc.Fields.Item(i).Result.Text) : //读取所有DocVariable类型的域值
end;
Word文档中域的具体类型共有87种,详细定义可在Delphi中的Word_Tlb.Pas中查阅。在使用域变量时,必须对域类型进行判断。以上所举的例子中都是通过域的遍历来实现指定位置文字的输出和读取,当然也可以通过域变量的名字进行域的识别。具体方法是利用域的Code属性,提取域定义字符串,然后在域定义字符串中查找域变量。需要注意的是:给域赋值时,域中原有的文字不会被新值替换,只是在域中原有的文字后继续添加。
以上4种方法,除特殊字符标记法只能用做Word文档生成之外,其余三种方法既能用作Word文档生成,也能用作利用模板制作的Word文档内容的读取。但是对于利用Word文档作为系统手动录入界面来讲,书签法很容易被用户误删除,域定义法更是很难被用户肉眼识别,且即使识别出来,手动录入也很麻烦。在实际应用中,表格法制作的模板文件一般来讲格式相对稳定,用户除非有意,否则很难误删除。因此表格法制作的模板同其他三种方法相比,更能胜任制作录入界面的工作。
模板文件归根结底是一种具有特殊格式的Word文档,因此很容易被人们修改格式。为了避免模板格式被破坏。可以为Word模板设置密码,具体使用时,手动或用程序输入密码,用程序输入密码的方法为WordDoc.UnProtect,然后打开模板文件进行操作。
发表评论
-
极点五笔的五笔拼音输入模式,很喜欢
2012-09-09 01:15 965下载附件: -
C++让计算机自动重启
2010-10-10 01:31 1016转自:http://www.yuloo.com/jsjks/ ... -
VBA实例教程
2010-07-02 02:13 1347学习VBA -
GOOGLE版的金山
2010-06-29 22:14 828GOOGLE版的金山相当不错,界面漂亮,运行速度快,用户体验非 ... -
FTP主动模式及被动模式
2009-06-26 15:27 1977FTP主动模式及被动模式 ... -
CVSNT在Windows下的安装和使用
2009-06-17 15:54 1211CVSNT在Windows下的安装和 ... -
Dom4j的使用
2009-03-14 23:00 720文章来源:http://xhy0422.ite ... -
java class反编译后的代码还原
2009-01-08 11:03 5556文章来源:http://blog.csdn.net/z3h/a ... -
EXT学习资料
2008-12-04 12:32 1407无论你是Ext库的新手, ... -
Maven使用手册
2008-12-03 13:28 1476来自:http://www.jieesoft.com/ ... -
windows批处理中符号的作用
2008-12-03 13:27 1126发表时间: 2007-12-27 13:48 ... -
将Java的class文件转为EXE的八种方法
2008-12-03 13:26 896将Java的class文件转为EXE的八种方法 文章来源:ht ... -
log4j配置文件基本含义说明
2008-12-03 13:24 960log4j配置文件基本含义说明 文章来源:http://www ... -
Commons-logging + Log4j 入门指南
2008-12-03 13:23 1906一 :为什么同时使用commons-logging和Log4j ... -
国家语言代码i18n
2008-12-03 13:23 2561Locale 语言 国家 da_DK 丹麦语 丹麦 ... -
FTP上传,下载
2008-12-03 13:20 1153FTP上传,下载 来源:htt ... -
用JAVA访问共享文件系统
2008-12-03 13:19 1467在Microsoft 网 络 系 统 ... -
如何利用数据库控制Serv-U的用户
2008-12-03 13:18 1426如何利用数据库控制Serv-U的用户 作者:未知 文章来源 ... -
关于SAX,DOM,JAXP,JDOM,DOM4J的一些理解
2008-12-03 13:12 2341作者:renyangok 处出: ... -
java中通过jacob调用word方法
2008-12-03 13:01 1113java中通过jacob调用word方法 public st ...
相关推荐
综上所述,通过VC++实现Word文档自动生成涉及到的关键技术包括COM技术、OLE自动化对象的调用、模板制作、书签定位和光标跟随技术。掌握这些技术,对于开发文档自动化的软件应用具有重要的意义。随着自动化技术的不断...
Word课程设计报告模板是学生在进行课程设计...以上就是Word课程设计报告模板的关键知识点,掌握这些技巧将有助于制作出高质量的课程设计报告。在实际操作中,应根据具体课程设计的内容和指导教师的要求灵活调整和应用。
- **编排试卷**:包括页面设置、密封线制作、模板设置、分栏布局、制表位调整、符号和数学公式插入、作文表格制作、答案隐藏、试卷打印等环节,全面提升试卷的编辑质量和效率。 - **目录制作**:利用Word的目录生成...
本资源"Excel表格+Word文档各类各行业模板-制作员工通讯录.zip"提供了用于创建高效、专业员工通讯录的模板,适用于各种企业和行业。 首先,我们来探讨Excel表格在制作员工通讯录中的应用。Excel以其强大的数据管理...
本文将围绕"S7-300标签打印Word模板"这一主题,详细介绍如何使用Word模板来制作专业且规范的S7-300 PLC系统标签。 S7-300标签设计的目标是确保在设备安装、调试和后期维护过程中,能够快速识别和定位各个模块与接线...
### Word、Excel、PPT使用技巧与实战方法大全(2010完整版) #### Word 使用技巧 1. **去除页眉的横线方法两则** 在Word文档中编辑页眉时,默认情况下通常会有一条横线,可以通过以下两种方法去除: - 方法一:...
实验结果表明,这种基于图像处理的身份证识别方法能有效地减少人工工作量,提高信息处理速度和准确性,具有很高的实用价值。在未来,随着深度学习和人工智能技术的发展,身份证识别技术有望进一步提升,提供更加智能...
9. **版本控制**:使用Word模板也便于求职者保存不同版本的简历,例如针对不同职位或公司的定制版。 10. **打印和电子版**:Word文档格式既可以方便地在线分享,也可以打印出来,满足不同场合的需求。 总的来说,...
【标签】为空,可能是因为未填写或系统未识别,通常标签可以用于分类和检索,例如“IT发布会”、“Word模板”、“设计素材”等。 在【部分内容】中,“未来社会科技变幻莫测新技术与日俱增新的经济生态圈也许就在下...
标签的作用是帮助用户快速定位和识别内容,同时也便于在线搜索和分类。 从提供的部分课程内容来看,教程重点提到了Word2007版本。这个版本是Microsoft Office 2007套件的一部分,它拥有许多新增功能和改进,相对于...
通过设置标题样式,Word能自动为文档生成目录,方便读者快速定位内容。 8. **页眉页脚链接**:在多页文档中,页眉页脚的链接功能可以保持相同信息(如页码)在每一页的一致性,同时允许在不同章节间设置差异。 9. ...
【Word 2013 长文档排版与制作】是计算机应用中的一项重要技能,尤其对于教学和文档管理而言。在这个过程中,理解和掌握关键概念、操作步骤以及技巧至关重要。 首先,我们要了解**长文档的结构**。一个完整的长文档...
标签可以帮助用户快速识别和定位这个资源,确保他们找到符合自己需求的学习资料。 【知识点详解】 1. **基础操作**:包括新建文档、保存与关闭文档、编辑文本(字体、字号、颜色、对齐方式等)、段落格式设置...
营业方针设定表的Word模板可能包括: - 营业策略概述:清晰阐述公司的业务目标、市场定位和竞争优势。 - 行动计划:列出实现营业方针的具体步骤和时间表。 - 团队分工:定义各部门和团队在执行方针过程中的角色和...
为了帮助您更好地定位这些信息在信封上的位置,建议在文本框中输入一些明显的汉字,以便于识别。 **7. 完成信封编辑** 完成上述步骤后,点击“完成”按钮结束信封编辑过程。此时,Word会根据您导入的地址簿中的...
总结,这个压缩包提供的模板旨在帮助用户高效地管理和报告住房公积金的汇缴情况,利用Excel的计算和数据分析能力,结合Word的文本编辑和报告制作功能,使得公积金管理变得更加规范和便捷。通过学习和使用这些模板,...
在IT行业中,处理数据和编写报告是至关重要的任务,而Excel和Word作为Microsoft Office套件中的核心组件,常被广泛用于各个行业的工艺卡片制作。工艺卡片通常包含了详细的工作流程、操作指南、技术参数等信息,旨在...
在Excel和Word中,制作月份销售日报是企业管理中常见的任务,尤其对于销售团队而言,能够清晰、直观地呈现销售数据,有助于分析业绩、制定策略。本压缩包包含了一系列适用于不同行业的模板,帮助用户快速创建专业且...