方案一:excel.cpp
首先需要在你的VC上添加EXCLE.h和.cpp
1.初始化COM支持库
在你的.app的InitInstance()函数AfxEnableControlContainer();语句之后加入
1 if (CoInitialize(NULL) != 0) 2 { 3 AfxMessageBox(“初始化COM支持库失败!”); 4 exit(1); 5 }
假如这个条件不通过就不能运行起程序。在程序的出口处CSolarApp:: ExitInstance()函数return语句之前加入下面这句话:
1 CoUninitialize();
来释放COM支持库,这样对COM库的支持就已完成。
2.导入EXCLE.CPP和EXCEL.H
下面要从Office的安装目录中找到对VC操作excel文件的动态库,在某些版本下这个文件是Excel8.olb或Excel9.olb,在我的版本中是excel.exe这个exe也是动态库的形式,是微软公司主要的文件结果之一。选择VC的View(查看)菜单里面的类向导ClassWizad命令,会弹出一个对话框;然后点击Add Class…按钮选择From a type library,会弹出一个打开对话框,从这里打开Office安装目录下D:\Program Files\Microsoft Office\Office12\EXCEL.EXE文件,从里面选择几个要用到的类:_Application, Workbooks, _Wrokbook, Worksheets, _WorkSheet, Range,点击OK按钮。会在程序中生成一个excel.h和excel.cpp文件,这些文件中包含了刚才我们选择的几个类的代码。下面介绍一下这几个类:
在VC操纵excel的exe动态库里面有好多个对象模型,就是刚才在创建过程中看到的那个列表,但是经常用到的有这么几个:_Application, Workbooks, _Wrokbook, Worksheets, _WorkSheet, Range,Charts和_Chart,最后面的两个是用来操作图表的,这里没有用到所以这里也就不记录了。
1>_Application:这里的Application就是Excel本身,众所周知,一个Excel可以包含多个工作簿,每个工作簿又可以包含多个工作表,而每个工作表又可以包含多个区域或者图表,所以这里他们是树型的结构关系,而application最基本的一个功能就是找到它的子项工作簿。果然,我们在引入我们程序的Application类中看到了这样的成员函数:GetWorkbooks()。
2> Workbooks:这个对象是一个容器对象,它里面存放着所有打开的工作簿。因此,我们可以猜测它一定有添加,查找,打开/关闭工作