Excel对象模型,微软智能客商端的前生今生

Outlook是微软第一款真正的智能客户端产品,先介绍一下Office

在始于上世纪90年间早先时期的网络大潮淹没桌面应用在此以前,微软那一个桌面应用的大人物,引领着大家迈进一个又二个不时,那时候的公司应用C/S架构为相对主流。步向新世纪后,蜂拥而来的是基于Web的运用,此时要是你还做依照C/S的公司应用,表达您早已Out了!

上贰回重大学习了VSTO的上扬历史及其历代版本的新特性,概述了VSTO对开辟人士的扶植和效能提高。从这一次开头,将从VSTO
4.0起来,逐条商量VSTO开荒中方方面面,自个儿接触VSTO时间相当的短,也是三次尝试。鉴于Excel在方方面面Office家族中的主要地方,故先从Excel初始介绍,后续内容会时有时无介绍Word、PowerPoint、Outlook、InfoPath等。由于VSTO
4.0白手起家在Office 二零零六基础之上,先介绍一下Office
2008的新性子,注意现行反革命只是Beta版,正式版大概还有成效上的调动。

Google的立即发展,让微软感受到前所未有的竞争压力,微软只管一点都不大愿意认可,但事实上是在互连网的一世,确实已经落后了Google一大步。不过微软也着实有友好的难关,终归自身最毛利的成品或许桌面包车型客车Office,固然也在幕后(仅仅是推断)拼命的追逐Google,把谷歌(Google)作为唯一真正的竞争对手,但桌面包车型大巴运用不大概放弃,毕竟那是最大的客商群体,也是最来钱的东西,于是大家在2003年就听见如此的叁个定义:智能客商端。鼓吹了一年,没来看什么效果与利益,然则借使你用到了Exchange,何况你对微软的Outlook二零零零或上述版本相比熟习,你就能体会到怎样叫做智能客商端了。严厉意义上讲,Outlook是微软首款真正的智能顾客端产品。Exchange是劳动器端,全数的剧情如邮件、公共文件夹都存款和储蓄在劳务器端,Outlook能够把温馨索要的从头到尾的经过,自动从劳动器端同步到顾客端。

亲自去做代码下载

微软的Sharepoint本领从二〇〇四的雏形,经过二零零二上扬到2005版时,已经主导形成了微软的三个战术性构想,就是把全路微软的客商端的office组件,通过二个叫做Sharepoint的服务器产品融入起来,变成一套真正含义上的全数非常的大弹性的集团应用的缓和方案。大家得以说,有了Sharepoint
server那个主旨,Office终于产生了二个完好的拼图,Office的每一个组件,终于都形成了二个个智能客商端的成品,Excel正是里面的先行者,Sharepoint2006不唯有提供了Excel服务,还大概有Form
service,就是从2000才有的Infopath组件。

本类别具备示例代码均在 Visual Studio 2009 Beta 2 + Office 二〇〇九 Beta
下测量检验通过

回想Office
二零零六的时候,有一个大家特别目生的名字,Groove,作者常有不曾钟情过,只是据说那是二个用于合营的出品,越发不解,Sharepoint的最初的心愿本人不便是合营么。当Office2010公布Beta的时候,微软算是揭秘了谜底,这几个收购的制品正式的名字将从Groove改为Sharepoint
Workspace,是三个正式的sharepoint 的智能顾客端,就像Exchange
和Outlook的关联一致。

 

纪念2007年在京都到场一个Sharepoint的品类,客商有四个要命实际的急需,正是时刻须要将内网门户中的内容同步到台式机上,去和客商扩充连锁的还价砍价,由于内容的不明确性,全部那时完结起来,有一定的难度,况兼不轻巧变成一套完备的缓解方案,未来好了,有了Sharepoint
Workspace,终于得以周到的兑现那个供给了。

一、Office 2010新特性

 当Office二〇〇八标准宣布的时候,作者想微软对此智能客商端终于有了一个完好的布道,只是不明白在Sharepoint和Office这些系列之外,微软还是能搞出什么样花样!呵呵。

微软将于二〇一〇年四月份正规生产Office 二零一零。Office
二零零六带来了过多主次革新,保持了Office
二〇〇五的XML文件格式,创新了Ribbon分界面,并拉动了依附浏览器的Excel、Word、OneNote、PowerPoint作为Office网络应用服务,并第一回提供六二十一位的Office。

 

  Office 二〇一〇打破了微软的观念意识,成为环球最闻明的在线Office工具,Office
20第10中学的基于Web的法力是全新的,由此恐怕相会世难点。由于对微软全新的Office在线体验有所质疑的千姿百态,纵然有一点点厂商陈设购买Office
二零零六,可是还要也会使用免费的Google Docs和Zoho。

 

Office
Word 2010

Office
Word 2010 增强了 Navigation Pane 特性,客户可在 Navigation Pane
中急迅切换至别的一章节的开头(遵照标题样式判别),同期也可在输入框中实行即时找出,包括关键词的章节标题会高亮显示。举个例子下图中的找出LiveSino.net:

澳门蒲京 1

Office
Word 2010 也扩展了在线实时合作功用,客户能够从 Office Word Web App
中运营 Word 二〇一〇实行在线文书档案的编写,并可在左下角看齐同一时间编写制定的其他客户(满含此外联系格局、IM
等音讯,须要 Office Communicator)。而当其余顾客修改了某处后,Word 2010会提示当前顾客打开同步。(注:此意义也设有于一些其余 Office 2008程序中)

另外,客户可在
Office Word 二零零六, Office PowerPoint 贰零零捌 以致 Office OneNote 二零零六 等
Office 2008 程序中直接插入别的正在周转的软件的截图。

Office
Excel 2010

Office
Excel 2010 新增了 Sparklines
天性,可依靠客户选用的多少直接在单元格内画出折线图、柱状图等,并配有
Sparklines 设计面板供自定义样式。

澳门蒲京 2

Office
PowerPoint 2010

Office
PowerPoint 二零零六除了新扩大越多幻灯片切换特效、图片管理特效之外,还扩张了越来越多录像功能,客户可径直在
PowerPoint 200第88中学设定(调整)最早和休憩时间辑录摄像(见下图),也可将录像放到之
PowerPoint 文件中。

澳门蒲京,PowerPoint
2010右边的幻灯片面板也陡增了分区天性,客商可将幻灯片分区归类,也可对任何区内的具有幻灯片实行操作。见下图中的
Default Section 和 LiveSino Section。

澳门蒲京 3

PowerPoint
二零零六 也加进了类似格式刷的工具 – Animation
Painter
,可将动画效果应用至别的对象,用法同格式刷。另外就是上次自己提到的
布罗兹cast Slide Show
在线幻灯片播放效果

Office
2008 别的零件包含 OneNote 2008, Access 二〇〇八, InfoPath 二零零六, Publisher
二〇〇八 都带有了成都百货上千新特色,而且皆已运用 Ribbon UI 但笔者不希图详细介绍。
澳门蒲京 4

Office
Web Applications 2010

Office Web
Applications
2010
包蕴Word Web App, Excel Web App, PowerPoint Web App 以致 OneNote Web
App,协助轻便的编辑及实时合营功能,扶助 IE, Firefox, 和
Safari。具体内容后文中介绍,另附清晰截图如下:

澳门蒲京 5 澳门蒲京 6

澳门蒲京 7澳门蒲京 8

Office
Mobile 2010

Office
Mobile 二〇〇八 满含新版 Word Mobile, Excel Mobile, PowerPoint Mobile,
OneNote Mobile 以至扶助对话情势的 Outlook
Mobile(见下图,来源:SuperSite)。

澳门蒲京 9

市肆服务器端也可渲染
Office 文档
供企业移动客户通过手机端查看 Office
文书档案,也辅助黑莓
iPhone

WZor.net 泄漏了
Microsoft Office 二〇一〇 Professional Plus 手艺预览版(x86,
x64),而
Ars
Technica

在第有的时候间宣布了整个 Office 二〇〇八 截图。纵然对待 1 个月前泄漏的 Outlook 2010
截图
,分界面并从未太大改造,但近日的
TechED 09 以致该泄漏版 Office 二零零六 中暗暗提示了些 Office 二零零六 的新特色。

Windows 7
Jump Lists


TechEd 二零一零 上,微软示范了支撑 Windows 7
Jump Lists 新特性

Outlook 2009。当有未读邮件时。Outlook
职责栏Logo右下角还满含新邮件的图标提醒(如下图)。(via Techradar

澳门蒲京 10

Microsoft
PowerPoint Live(Broadcast Slide Show)

PowerPoint
2008 辅助将演示文书档案揭露至 PowerPoint Live
或任何在线服务,以便别的顾客可通过浏览器阅览该演示文档,类似 Apple
iWork.com
。而 PowerPoint
Live 异常的大概便是 Office Web
Applications

中的一员。

澳门蒲京 11

JCXP
还提交了
有的
PowerPoint 二零零六 以至 Word 2009 新特色的截图和简介,比如:PowerPoint
截图效用、新的 PowerPoint 过渡效果、PowerPoint 内录像幻灯演示。

另外,Office 2010官方协会也已认同:Groove
已更名称叫 SharePoint Workspace,并且 OneNote 和 SharePoint Workspace
都将囊括于 Pro Plus 版本中。

小编曾经设置了Office
2008 Professional Plus Beta X64:

澳门蒲京 12

如上文介绍的,InfoPath和Groove的命名产生了转移,其余不改变。个人以为Office
20第10中学最大的转移是对在线办公的支撑,那是前景发展的大方向,个人表示看好。别的新效率作者会陆续尝试,会公布在承继篇章,以VSTO
4.0来体验新个性。

 

二、Excel对象模型

澳门蒲京 13

目的模型是一组由Office应用程序提供的目的,用来调节Office应用程序,是VSTO开垦的核心内容。在那之中Application是最顶层的靶子,负担对Office实行总体的操纵,类似于.Net
WinForm和WPF中的Application对象,是根对象。Workbook(s)指职业簿,Worksheet(s)指专门的学问表,Chart(s)指种种图片。Sheets对象相比较非常,它包含Worksheet或Chart类型的指标,而Range表示期望操作的单元格范围。

 

三、主互调程序集(PIA)

用以与Office交互的托管程序集叫做Office主互调程序集(PIA)。

PIA = Primary Interop Assemblies

日常说来选取一种被称呼COM
Interop的.Net技能与Office对象模型实行互相,全部的Office对象都以用非托管代码(C、C++)编写的,并提供COM接口。为了在托管代码中与这个接口举办通讯,必须采取封装器,通过封装器来落实托管代码与Office非托管COM接口之间的协同工作。该封装器是一多元的.Net类,他们被编译为PIA程序集。之所以PIA称之为”主”,是因为开垦职员能够付出自个儿的封装器IA(Interop
Assemblies),除非有那三个独特的需要,否则不提议选取本身的IA,因为那不能与任何的Office技术方案实行互相,并且有望带有Office已经修复的bug。

设置相应的Office版本后就能安装PIA了,若是要开销VSTO 4.0,提出安装Office
二〇〇九 Professional Plus Beta。Office PIA棉被服装置到GAC(GAC = Global Assembly
Cache)中。

绝大相当多VSTO项目会自动加多PIA,如若创立的是任何项指标门类(调整台、类库、WinForm、WPF等),则必要手动增添PIA。

说明

程序集名称

命名空间

Microsoft Office 14.0 Object Library

Office.dll

Microsoft.Office.Core

Microsoft Excel 14.0 Object Library

Microsoft.Office.Interop.Excel.dll

Microsoft.Office.Interop.Excel

Microsoft Word 14.0 Object Library

Microsoft.Office.Interop. Word.dll

Microsoft.Office.Interop. Word

Microsoft Outlook 14.0 Object Library

Microsoft.Office.Interop. Outlook.dll

Microsoft.Office.Interop. Outlook

Microsoft Graph 14.0 Object Library

Microsoft.Office.Interop. Graph.dll

Microsoft.Office.Interop. Graph

Microsoft.SmartTags 2.0 Type Library

Microsoft.Office.Interop.SmartTag.dll

Microsoft.Office.Interop.SmartTag

澳门蒲京 14

当PIA之间有凭仗关系时,VS2008会自动抬高必得的PIA。

 

四、Office实施方案

1、Office自动化程序(Office Automation Executable)

Office自动化程序是独自于Office的主次,用于调节和自动化管理有些Office应用程序。如调节台、类库、WinForm、WPF等。

2、Office加载项(Add-In)

Office加载项是有些程序集(dll)中的类,Office在急需时可加载和开创它,加载项能够一向在Office应用程序的过程中运作,而无需在单身于Office应用程序的经过中运营,加载项在Office应用程序的全数生命周期中均保持加载状态。

3、Office文书档案代码(Code Behind on Office Document)

Office文书档案代码早在VBA时期就已经猎取了宽广的使用,在VSTO中获取了越来越拉长。Office文书档案代码能够用某种情势对Office应用程序进行定制,如增添只在当下文书档案中才面世的菜单项,或许在文书档案展开时接触事件。

4、Office 模板(Office Template)

接纳托管代码创设相应的Office模板。

5、服务器文书档案情势(Server Document)

VSTO能够在不展开Office应用程序的动静下,在劳务器端运转程序并对存放在Office文书档案中的数据开展操作,如VSTO的缓存数据功效,SharePoint
二零零六/ 二〇〇九的Excel Services等。

6、OpenXML模式

以OpenXML的API操作Office文书档案中的数据,结合XSLT等转移为索要的文书档案格式。关于OpenXML的介绍请参阅小编博客的此外二个多种:OpenXML学习笔记。

 

五、Office文书档案代码示例

鉴于此番重高校习Excel对象模型,顾选择Office文书档案代码形式做多少个轻松的练习,其他格局一连篇章会时有时无介绍。

1、新建贰个Excel 二〇一〇 Workbook项目:

澳门蒲京 15

 

暗中同意增多的援用和花色文件:

澳门蒲京 16

 

2、在Sheet第11中学加多五个Button和贰个Label控件:

澳门蒲京 17

 

3、加多事件管理代码:

 

澳门蒲京 18澳门蒲京 19代码

        private void btnPIA_Click(object sender, EventArgs e)
        {
            Excel.Workbook book = this.Application.Workbooks[1];
            Excel.Worksheet sheet = book.Worksheets[1];//C# 4.0新特征,PIA动态导入。
            this.labMsg.Text = “那是PIA调用结果,当前职业表名字为: ” + sheet.Name;
        }

        private void btn获取职业表_Click(object sender, EventArgs e)
        {
            this.labMsg.Text = string.Empty;
            Excel.Workbook book = this.Application.Workbooks[1];

            for (int i = 1; i <= book.Worksheets.Count; i++)
            {
                //C# 4.0新特点,PIA动态编写翻译。
                this.labMsg.Text += book.Worksheets[i].Name + ” “;
            }
        }

受益于C#
4.0的新特征,可以不用进行展示类型调换了,同时PIA将要运维时开展导入、编写翻译,注意:VSTO中的索引大比比较多是从1开首,并不是从0.

 

4、F5周转,将会展开生成的Excel:

澳门蒲京 20

 

5、运维结果:

澳门蒲京 21

 

六、小结

本次首先陈述了Office
二零零六的新特点,学习了VSTO开辟的基础知识,对PIA有了深切的认知,介绍了分歧的Office建设方案的区分。最终用 Excel文档代码做了三个简便的亲自去做,利用C#
4.0的新特征,使得VSTO 4.0的开销特别简便易行、高效。若是您还面生C#
4.0,不妨先看看园子里的相关作品,若要调节和测量检验本示例代码,须要设置VS2009Beta2 + Office 二零零六Beta。下贰回将延续学习Excel的有关文化,我们将运用VSTO来编排七个Excel自定义公式,比较其与VBA的例外。