- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
程序自动生成WORD文档的实现.doc
程序自动生成WORD文档的实现 杜永红1 熊伟1 崔美花1 吴英明1 (1塔里木油田公司勘探事业部 841000) 摘要: 本文介绍了一种由程序根据用户在录入界面所录入的各种数据自动生成一篇完整的WORD文档的具体实现过程。 关键词: 自动生成 WORD WORD书签 模板 1 引言 在我们的一个项目中,当用户录入完各种数据后,需要一份由这些数据组成的格式既定的WORD文档,显然不能让用户手工去生成这份文档,而应该由程序来自动产生。经过我们的试验,最终完成了这个功能,这里就简单介绍一下我们程序自动生成WORD文档的实现过程,同时对于想以WORD来做报表或打印环境的读者起到一个抛砖引玉作用。 2 思路 要自动生成WORD文档,有两种方法可用:一是完全通过编写代码实现所有的步骤,不需要事先做模板文件,所有过程都是动态的,这种方法的缺点是编程量大,而且格式不易控制,修改困难;另一种是事先做好WORD模板,生成WORD文档时只需向模板中填入数据即可,由于我们的系统中表格众多,前一种方法实现起来比较困难,因此我们采用的是第二种方法。 要向WORD模板中填入数据,首要的是要解决定位问题,即如何将WORD文档中的当前光标移动到要填入数据的地方,同样一般也有两种方法:一是用特殊字符串标记,比如用以#$@开头的字符串标记各种数据的位置,生成WORD文档时用真实数据替换这些特殊字符串即可;另一种方法是用WORD的书签标记各种数据的位置,生成WORD文档时只要定位到了相应的书签处即可进行数据的填入工作。相比之下,WORD对书签提供了直接的支持,有相关的接口可以调用,而对于特殊字符串只能采用查找字符串的方法,因此书签的效率要高一些,我们采用了用书签做标记的方式。 我们要生成的WORD文档都有很多章节组成(如图1),每个章节在生成WORD时可能已录入数据也可能没有数据,没有数据的章节生成WORD文档时需要从模板中去掉,因此对于每个章节需要设置两个书签标记,一是章节的开始位置,一是章节的结束位置。对于文档中的大量表格,由于生成文档时需要从我们的表格控件上提取数据然后按照对应关系写入到WORD文档中的表格中,因此需要根据我们在表格控件的模板中对每个表格的标记来标记WORD模板中的每个表格,然后在生成WORD文档时才能正确的定位到相应的表格,具体对应如图2和图3所示。 图 1 要生成的WORD文档的目录 图 2 表格控件中定义的标记 图 3 WORD模板中定义的标记 生成WORD文档的类 在开发过程中,我们专门设计了一个类来完成各种数据转入WORD的功能,此类有如下几个重要的成员变量: _Application m_WordApp; //WORD的应用对象 _Document m_WordDoc; //WORD的文档对象 Selection m_WordSelection; //WORD的选择对象 有如下几个重要的成员函数: //定位到WORD文档中的指定书签 bool GotoBookmark(CString bookmark); //判断WORD文档中指定书签是否存在 bool BookmarkExist(CString bookmark); //对WORD文档中的当前节进行页面设置 void CurSectionPageSetup(SECTION_PAGE_SETUP setup); //设置WORD文档中当前所选内容的格式 void SetSelectionFormat(SELECTION_FORMAT format, CString mask); //使WORD文档中当前页面的页码继续前一节编号 void SetPageNumbersContinue(); //打开指定WORD文件 bool OpenFile(CString pathName); //从WORD模板新建WORD文档 bool NewFromTemplate(CString pathName); //WORD文档的某一章节是否有内容 bool SectionHavingContent(CString section, CString sectionEnd, long minContentLength); //从WORD模板中拷贝指定章节到当前文档中 bool CopySectionFromTemplate(CString pathName, CString section, CString sectionEnd, CString preSectionEnd, CString nextSection); //删除WORD文档的指定章节
有哪些信誉好的足球投注网站
文档评论(0)