前一篇文章介绍了Excel中的菜单系统,在创建完菜单和工具栏之后,就要着手进行功能的开发了。不论您采用何种方式来开发Excel应用程序,了解Excel对象模型尤其重要,这些对象是您与Excel进行交互的基石。据不完全统计,Excel的对象模型中有270多个对象及超过5000多个属性和方法。通过这些对象及方法,您可以充分利用Excel来定制化您的插件。
Excel的所有对象,事件,方法和属性在这里不可能全部介绍完。本文简要介绍一下Excel的整体文档对象模型,以及一些比较重要的,平常开发中需要频繁接触到的对象,属性,事件及方法,如Application,Range对象等,使您对Excel的整个结构有一个简单的了解。后面在编程中遇到问题了,您可以快速定位知道需要设置或者调用哪个对象及其方法,然后根据关键字到Google或者MSDN上方便查找。本文大部分内容参照MSDN上的这篇文章Understanding the Excel Object Model from a .NET Developer's Perspective 如果您对英文没有问题,建议您直接去MSDN看原文。
一 Excel 对象模型简介
在与Excel进行交互之前,了解Excel对象模型的整体结构非常重要,这使得我们对Excel有一种更整体全面的了解。下图是Excel的对象模型的整个层级结构。
根据这个图,我们打开一个Excel,可以有一种非常直观形象的了解。
图中可以看到,Excel对象模型基本模拟了UI界面:
一个Excel应用程序就是一个Application,全局的对象比如菜单,工具条都属于Application对象。
相关文章:
浅谈Excel开发(1) Excel开发概述:http://www.bianceng.cnhttp://www.bianceng.cn/Programming/net/201312/39219.htm
一个Application可以包含很多个Workbook(Workbooks)。具体而言就是,我们可以同时打开很多个工作簿(Workbooks),但某一时候只有一个工作簿(Workbook)处于编辑状态,这个工作簿叫做活动工作簿(ActiveWorkbook);
一个Workbook可以包含很多个Worksheet(Worksheets)。具体而言就是,一个工作簿可以包含很多工作表(Worksheets),某一时刻只有一个工作表(Worksheet)处于编辑状态,这个工作表称之为活动工作表(ActiveWorksheet)。
一个Workbook还可以包含很多Shapes对象。工作表中还可以包含一些图表,标记,注释,控件等,这些都是浮在Sheet页上的,这些统称为Shapes,其中我们接触的最多的是图表(Charts)。
一个WorkSheet可以包含很多个Range对象。具体而言,一个工作表里面有很多个单元格,单元格范围用Range表示,Range可以使一个单元格,也可以使多个单元格。单元格都是嵌入到Sheet页中的。