曾经为了办公自动化开发熬夜熬到了快要崩溃的地步,想想当时的痛苦,其实还是资料和经验都不足。 OLE Automation、ODBC、COM……其实,用哪种方式开发office系列产品的自动化软件都不要紧,只要找到一个自己喜欢的方向,继续研究下去就好,日有所进,不负韶华。选择OLE Automation是因为用的最多,呵呵。
vc用Ole自动化方式连接excel的时候,并不是如同vba那样一旦连接,以后就不用再连接每个Object了。
ole自动化连接的方式是把excel分解成各个级别的对象,一级一级的link,这就是为什么经常会用到attach某某对象的方法了。
程序对excel进行读写的方式一般是按照下面的顺序进行的。
1、启动excel的application
2、获得所有的workbook,即workbooks
3、打开或者新建单个workbook
4、获得该workbook的所有worksheet,即worksheets
5、激活单个的worksheet
6、获得该worksheet的所有单元格
7、连接某一个单元格
8、读写
如果你打算返回到worksheet的层次进行操作,那么,程序必须解除和worksheet以下的各级别对象的连接,然后方可稳定运行程序。
ole自动化方式控制excel的特点如同下面的对应序列一样,1~~4是对象级别从高到低,比如从excel的application到worksheet,一级一级的连接。
vc客户端 excel的受控对象
ole对象1————excel对象1
ole对象2————excel对象2
ole对象3————excel对象3
ole对象4————excel对象4
通常vc读取单元格内容的手法是,用COleVariant接收数据,COleVariant里面封装了原来的Variant,只要指定好变量类型就可以了,也可以读取之后判断所属类型。range有获取单元格内容的方法,可以直接调用啊。