NET环境下生成自定义的Word及Excel报表,Word2003关于智能文档

智能文档设计用于在您使用文档时为您提供帮助。几种文档类型,如窗体和模板,也作为智能文档使用。

基础:微软官方的解释XML与Word    

第二部分:.NET中的Office编程
本书前两章介绍了Office对象模型和Office PIA。 您还看到如何使用Visual
Studio使用VSTO的功能构建文档中的控制台应用程序,加载项和代码。
本书的第二部分更深入地介绍了Office对象模型。
如果您只对Excel开发感兴趣,请阅读第3章至第5章。如果您只对Word开发感兴趣,请阅读第6章至第9章。如果您只对Outlook开发感兴趣,请阅读第7章至第11章。如果您只感兴趣
在InfoPath开发中,阅读第12章。

贯穿某个过程使用时,智能文档尤其有效。例如,贵公司可能拥有一套填写年度雇员评审表的过程,并且您可能已经将某一
Microsoft Word
模板用于该目的。如果将那个模板转变为智能文档,它可以连接到数据库以自动填写某些所需信息。完成表格时,智能文档会显示一个按钮,允许您将表格传送至过程的下一步。因为智能文档知道您的经理是谁,所以它能自动将文档传送给那个人。并且,无论谁在处理智能文档,智能文档都知道它处于审阅过程的哪个阶段以及下一步要做什么。

 

第3章  Excel编程

智能文档可以帮助您重用内容。例如,律师可以在编写合同时使用现有的样板文件,新闻记者可以插入作者行和其他常用文本。

关于 Word 中的 XML 文档

适用于: Microsoft Office Word
2003

 注释   除了将文档保存为带 Word XML 架构的 XML,其他的 XML
功能只能在 Microsoft Office Professional Edition 2003 和独立的 Microsoft
Office Word 2003中使用。

 

智能文档可以使共享信息变得更容易。它们可以与多种数据库交互,并使用
Microsoft BizTalk Server 跟踪工作流。它们还可以与其他 Microsoft Office
应用程序交互。例如,您可以使用智能文档通过 Microsoft Outlook
发送电子邮件,完全不需要离开文档或者启动 Outlook。

为什么使用 XML?

可扩展标记语言 (XML) (可扩展标记语言
(XML):标准标记语言 (SGML)
的一种浓缩形式,开发人员可用其创建自定义标签,为整理和提供信息提供了灵活性。))
使您能够以以前不可能或很难实现的方式组织和处理文档和数据。使用自定义 XML
架构,可以从普通商业文档中识别并提取出特定的商业数据片段。

例如,一张包含客户姓名和地址的支票,或者一份包含上季度财务结果的报表都不再是静态文档。它们包含的信息可以被传送到一个数据库或在文档外部的其他地方重用。

将 Microsoft Word 文档以标准 XML
格式保存的能力有助于将内容从文档范畴中分离出来。内容可用于自动化数据采集和用途变更过程。内容能够很容易地被搜索到,甚至被
Word 以外的其他进程所修改,例如基于服务器的数据处理。

因为 Word 能够将其文档表示为
XML,通过将来自各种源的数据放在一起,自动化的基于服务器的进程可以在运行中生成
Word
文档。这样的文档能够很容易地定期更新,排除了相关数据的手动搜索和不必要的重新键入。

自定义Excel的方法
Excel是Office系列中经常被编程的应用程序。
Excel具有非常丰富的对象模型,其中196个对象组合有超过4500个属性和方法。它支持多种用于集成代码的模型,包括文档中的加载项和代码。大多数这些型号最初设计为允许以VB
6,VBA,C或C ++编写的COM组件的集成。然而,通过COM互操作,用C#或Visual
Basic编写的管理对象可以伪装成COM对象并参与大多数这些模型。本章简要介绍了您可以将代码与Excel集成的几种方法,并将其引用到更深入讨论这些方法的其他章节。本章还探讨了为Excel创建用户定义的函数,并介绍了Excel对象模型。

智能文档是由开发人员和信息技术 专家创建并发布的。查看是否有 XML 扩展包
(XML 扩展包:由 XML
格式的清单文件管理的一组文件,通过指定自定义显示或操作为 Microsoft Word
或 Microsoft Excel 文档添加功能。)附加到 Word
文档(“工具”菜单,“模板和加载项”命令,“XML 扩展包”选项卡),可以判断您的
Word 文档是否为智能文档。

Word 和 XML

Microsoft Word 允许您以两种方式处理 XML 文档:

  • 使用 Word XML 架构     可以在 Word
    中创建一个文档,然后将其保存为 XML 文档。Word 使用它自己的 XML
    架构 (XML 架构:以
    XML 编写的正式规范,定义了 XML
    文档的结构,包括元素名和丰富的数据类型,以及哪些元素要以组合形式出现,每一元素具有哪些属性。))、WordML
    来应用存储信息(例如文件属性)的 XML
    标记,并且定义文档的结构(例如段落、标题和表格)。根据 Word XML
    架构,Word 还使用 XML 标记存储格式和版式信息。
  • 使用任意 XML 架构     可以在 Word
    中创建或打开一个文档,将任意自定义的 XML 架构附加到该文档,并将 XML
    标记应用到文档内容。将文档另保存为 XML 文档时,XML
    标记会根据附加到该文档的 XML 架构定义文档结构。

保存文档时,Word
架构和自定义架构都被默认附加到文档,保留自定义架构定义的数据和 Word XML
架构定义的丰富格式。根据自定义架构,还可以选择仅保存数据。

无论是用内置的 Word XML 架构定义 Word
文档结构,还是附加自己的架构来定义更适合您业务的结构,任何能够分析 XML
的软件都能阅读并处理您保存为 XML 格式(.xml 文件)的文档中的数据。

例如,如果将自定义架构用于简历数据,文档中的 XML
标记将会按照姓名、地址、工作经历、教育等来定义文档结构。保存该文档时,您同时拥有一个打印时看起来很专业的格式丰富的文档,和一个能够被任意可处理
XML 的程序所处理的数据文件。

还可以将 XML 数据存储在保存为 Word 文档 (.doc) 或模板 (.dot)
的文档中。但是,只有 Word 能够读懂或处理该 XML。

 

注释:除了将文档保存为带 Word XML 架构的 XML,其他的 XML 功能只能在
Microsoft Office Professional Edition 2003 和独立的 Microsoft Office
Word 2003中使用。

XML 标记

将自定义 XML 架构附加到文档时,“XML
结构”
任务窗格将提供该架构中定义的元素的一个列表。选择文档内容,然后从该列表中选择一个元素,可以将
XML 标记应用到文档。如果架构定义了某个元素的属性,还可以在“XML
结构”
任务窗格中指定这些属性。

 注释   可以为一个文档附加多个架构。来自所有附加架构的元素会在“XML
结构”
任务窗格的元素列表中列出。

窗格上的复选框允许您在文档上下文中查看内嵌的 XML 标记。

如果文档结构不符合架构规则,将会在文档中以紫色波浪线标记出来,并在“XML
结构”
任务窗格中报告此违规错误。

自动执行
如第2章“Office解决方案简介”中所述,与Excel集成的最简单的方法是从控制台应用程序或Windows
Forms应用程序启动Excel,并从外部程序自动执行。第2章提供了自动执行Word的示例。

一个 XML 扩展包包含多个组件,包括可扩展标记语言 :标准标记语言
的一种浓缩形式,开发人员可用其创建自定义标签,为整理和提供信息提供了灵活性。)
文件和引用那些组件的清单。打开一个附加到某个 XML 扩展包的文档时,Word
还会打开“文档操作”任务窗格。该任务窗格可能包含完成任务所需的工具以及使用智能文档的帮助。智能文档提供的特定功能取决于创建该文档的开发人员或
IT 专家。

XSL 转换

打开或保存 XML 文档时,可以应用以特定格式呈现 XML 数据的 XSL 转换
(XSLT) (XSL 转换
(XSLT):一种文件,用于将 XML 文档转换为其他类型的文档,例如 HTML 或
XML。设计本意是作为 XSL
的一部分使用。))
文件。例如,您可能拥有一个将数据显示为规范的
XSLT,和另一个将相同数据显示为部件清单(其中计算了数量和价格)的 XSLT。

图片 1打开文档时应用的
XSLT)

一个 XML 文档可能拥有多个与其关联的
XSLT。如果是这样,则必须选择您希望使用的 XSLT 来显示文档。这是在“XML
文档”
窗格中完成的,该窗格列出了可用的 XSLT(数据视图)。

如果没有与 XML 文档关联的 XSLT,则 Word 会使用其默认 XSLT
或“仅数据视图”打开该文档。

如果文档附加了 Word XML 架构,即使该文档拥有一个与其关联的 XSLT,Word
打开文档时也不会应用该 XSLT。

 注释   可以定义解决方案将 XSLT 与特定类型的 XML
文档关联,而不是手动地应用
XSLT。需要在“架构库”中进行这种关联,可以在“模板和加载项”对话框(“工具”菜单)的“XML
架构”
选项卡上访问“架构库”。

 

图片 2保存文档时应用的
XSLT)

 

 

 

 

实现:

     XML Schema
是用来定义XML的结构文件,可以称之为XSD文件。而在Word及Excel中都支持添加架构文件,这样我们就可以使用XSD定义模板架构,将模板保存成XML格式,在报表生成时可以使用该模板生成相应的报表。

 

首先第一步:生成相应的XSD文件。

    

   
根据面向对象的思想,现大多都是使用三层架构,就算多层其基本也是变,在Model层中有各实例对象若是使用NHibernate、第三方的数据访问层(如动软生成的)、微软的实体框架集等均是可以的。它只是根据实体类生成相应的架构文件。具体操作是:先将实体层在vs环境中生成dll文件,然后在VS的命令提示中输入【xsd 
dll文件的路径】生成成功后,可以看到一个后缀为Xsd的文件路径。

 

第二步:生成模板

     
找到路径下的xsd文件,如果是制作Word文档的模板(本文以Word为例),在新建的doc文件中,工具-模板与加载项-架构-添加架构 
选择刚才生气的xsd文件,填上URL(命名空间)如:
,最好是选上
允许以XML文件保存不论是否有效。这样就可以查看到XML结构,然后在相应的位置插入相应的元素,同时还可以调整格式如:

图片 3

 

完成后将其另存为xml格式文件,这样模板就做好了。

 

第三步:生成报表

这里我使用了一个封闭好了的类,其调用方式

 

图片 4图片 5代码

        lxp.ASC_BusinessReportThingInfo asc = new lxp.ASC_BusinessReportThingInfo(1);//实体类
        asc.Name = "叩亦杰";
        asc.Birthday = DateTime.Now;
//设置类中属性值

        WordReport rt = new WordReport(@"E:\Word与Exsel报表学习\Word\lxp.xml");//加载模板,Excel时就使用ExcelReport
        rt.InputData(asc);//加入数据
        rt.Save(@"E:\Word与Exsel报表学习\Word\生成的lxp.doc");//保存

 

 

这样用户可自定生成的报表基本实现。

 

如果不具备开发或 IT
资源,可以下载由第三方创建的智能文档。如果您是一名开发人员,想要了解创建智能文档的详情,请参见
Microsoft Developer Network 网站上的 Smart Document Software Development
Kit。

COM加载项
Excel可以加载一个COM加载项,它是一个包含实现IDTExtensibility2的类的DLL。实现IDTExtensibility2的类必须在注册表中注册,以便它可以被发现和通话,就像扩展Excel的其他COM加载项一样。

注释:第一次尝试使用智能文档时,可能会看到错误信息,告诉您需要安装通用语言运行时组件或需要其他版本的组件。如果看到这类消息,请与您的系统管理员联系。

 

COM加载项通常用于添加可用于Excel打开的任何工作簿的应用程序级功能。例如,您可以编写一个COM加载项,它会添加一个菜单项,以便将所选Excel工作表单元中的货币根据当前汇率转换为另一种货币。

 

Excel有一个COM加载项对话框,使用户可以打开和关闭COM加载项。请注意,通过从“工具”菜单中选择“加载项”访问的对话框不是COM加载项对话框。该对话框用于打开和关闭自动化加载项和XLA加载项,这将在本章后面讨论。要访问COM加载项对话框,必须执行以下步骤:

 

1.右键单击Excel中的菜单或工具栏,然后从弹出菜单中选择“自定义”,或者从“工具”菜单中选择“自定义”以显示“自定义”对话框。

 

 
2.单击“自定义”对话框的“命令”选项卡。

 

 
3.从类别列表中选择工具。

 

 
4.向下滚动命令列表,直到看到一个说明COM加载项的命令。

 

 
5.拖动COM加载项命令并将其放在工具栏上。

发表评论

电子邮件地址不会被公开。 必填项已用*标注