图片 10

本书的第二部分更深入地介绍了Office对象模型,也作为智能文档使用

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

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");//保存

 

 

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

第3章  Excel编程

1、在“工具”菜单上,单击“模板和加载项”。 2、单击“XML 扩展包”选项卡。
3、在“可用 XML 扩展包”列表中,单击要删除的解决方案。 4、单击“删除”。

3)Office
2010官方博客

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

为什么使用 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 扩展包存储于计算机上的所有文件,因为其他智能文档可能共享该文件。

对第1点和第5点的简单解释如下:

智能文档是由开发人员和信息技术 专家创建并发布的。查看是否有 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。

 

1、在“工具”菜单上,单击“模板和加载项”。 2、单击“XML 扩展包”选项卡。
3、单击“添加”。 4、在“安装 XML
扩展包”对话框中,定位要添加的解决方案的文件夹。 5、单击“打开”。
6、在“可用 XML 扩展包”列表中,单击要附加到文档的解决方案。
7、单击“附加”。

 

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

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

 

“名称”和“源 URL”文档属性会自动更新以反应您的选择。

doc.SaveAs("Test.docx");

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

关于 Word 中的 XML 文档

适用于: Microsoft Office Word
2003

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

可以在C#或Visual
Basic中从头开始编写智能文档解决方案。这本书没有涵盖这个方法。相反,本书着重于VSTO方法,该方法旨在使智能文档开发更容易,并允许您使用Windows窗体创建自定义文档操作任务窗格。第15章“使用动作窗格”,更详细地讨论了这一功能。

添加并附加 XML 扩展包

  • 功能区可视化设计器:功能区是组织相关命令的新方式。实际上,它们作为控件显示。可视化设计器提供高级工具并支持更容易地创建和设计自定义功能区。

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

XML 标记

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

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

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

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

 

添加一个 XML
扩展包后,随时打开文档,该扩展包都会显示在可用解决方案列表中。若要使用解决方案,必须将其附加到文档中。

object missing  = System.Reflection.Missing.Value;

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

 

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

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

图片 6

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

 

删除智能文档解决方案

VSTO架构的核心组件是文档级定制、应用程序级加载项和文档级的数据模型。VSTO的新架构允许编写和运行带有宏的Office应用程序。
图片 7
上图表明Office 2007解决方案逻辑架构。VSTO能够使Office开发者为InfoPath、Word和Excel文档创建文档级定制,而对于Outlook、PowerPoint和Visio,VSTO不支持文档级定制。
VSTO提供了非常好的面向对象编程支持。VSTO提供了对C#编程语言的完全支持,允许在Office解决方案中执行面向对象编程。面向对象编程是一种软件编程方式,程序结构基于对象之间的交互,以执行任务。
VSTO的架构设计帮助Office开发者实现了应用程序和数据的分离,提供开发应用程序级解决方案的增强支持,并且公布了多种对象使Office开发者更容易编写Office应用程序。开发应用程序级和文档级的解决方案是VSTO中另一项架构改进。

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

图片 8

若要为智能文档添加 XML 扩展包 (XML 扩展包:由 XML
格式的清单文件管理的一组文件,通过指定自定义显示或操作为 Microsoft Word
或 Microsoft Excel 文档添加功能。),您必须拥有可用的 XML
扩展包。请与您的信息技术 专家联系,了解企业 XML 扩展包的位置。

    微软提出的第一种Office开发解决方案就是VBA,在20世纪九十年代VBA红极一时,借助于当时如日中天的Visual
Basic,VBA取得了巨大的成功,无论是专业的开发人员,还是刚入门的非开发人员,都可以利用VBA完成简单或复杂的需求。但是VBA本身拥有很多的局限性,VB语言虽然简单,但是其语法令中高级开发人员不太适应,尤其是VBA的开发环境过于简单,缺少与时俱进的高级功能,使得VBA开发陷入了瓶颈。

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

七、推荐资源

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

    在C# 4.0发布之前(虽然现在也没有发布),用VB开发Office比用C#方便的多,这是因为VB简化了对Office对象模型的调用方法。但是随着C# 4.0的即将发布,VB的这种”优势”将会变得愈来愈小。园子里有很多人已经写过C# 4.0的新特性,这里仅提取出针对于COM操作的改进:

图3-1  Excel中的COM加载项对话框

  • 使用ClickOnce部署:ClickOcne部署技术允许基于Windows应用程序使用最小程度的用户交互来部署和运行。安全区将限制使用ClickOnce技术部署的应用程序的许可和操作。

VSTO对工作簿后面的代码的支持将在本书第三部分中详细讨论。

图片 9

 

  • 目前,VSTO 3.0支持VB.NET和C#开发Office解决方案。在将来的VSTO版本中,我们期望支持其他语言,例如C++,这将帮助C++开发者创建VSTO解决方案。
  • VSTO 3.0智能标记仅限于Office应用程序中文档级解决方案,不能在应用程序级解决方案中使用,因此我们期望Microsoft在将来的VSTO版本中添加这项功能。
  • 使用VSTO和Visual Studio环境在Office应用程序内创建工作流活动是我们在下一版本中期望的功能。数据和应用程序协同工作的能力是Windows工作流的核心,在VSTO中的改进将帮助我们重新组织面向工作流的开发。
  • 应该在将来的版本中在Visio应用程序中也添加使用VSTO创建文档级的自定义任务窗格的功能。这将对Visio用户管理自定义形状是有用的。

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

1、书籍:《VSTO 开发指南》,VSTO的权威著作,强烈推荐。

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

  • Excel COM
    API完成。正因为这个项目,我发现了VSTO的强大功能与潜力,决定抽出一些时间来好好研究下。

第18章“服务器数据场景”介绍了使用ServerDocument在服务器上生成文档。

3、VSTO 2.0(VSTO 2005 SE)

 

在COM调用中,很多输入输出类型都是object,这样就必须知道返回对象的确切类型,强制转换后才可以调用相应的方法。在4.0中有了dynamic的支持,就可以在导入这些COM接口时将变量定义为dynamic而不是object,省掉了强制类型转换。

 图片 10

2、网站:

第6章“编程词”讨论了更详细地创建研究服务。

  • SharePoint支持:VSTO中的新对象帮助开发者在Office应用程序中为SharePoint编程。可以使用VSTO扩展Office客户端应用程序,使用SharePoint Portal将它们整合到企业解决方案中,例如客户关系管理、供应链管理以及其他类似的应用程序。

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

1、新建一个Office 2010的Excel Workbook项目:

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

本系列所有示例代码均在 Visual Studio 2010 Beta 2 + Office 2010 Beta
下测试通过 

图3-4  Excel中的智能标签

1)MSDN VSTO版块    

发表评论

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

相关文章