在 Java 中对 Excel 操作很方便但是在 C++ 中对 Excel 操作却不是那么方便了,C++ 中有几种方法可以对 Excel 操作但是大部分方法要么是读写较慢,要么是操作的功能不多比如只可导入文本数据,鈈可导入图像其中在 MFC 中操作 Office 这种方法功能较齐全,通过 vs 导入 OLE/COM 组件来实现对 Office
的操作但是操作稍微复杂些,下面就针对这种方法来介绍:
Office 2013 (32位) 【最开始我的是64位但是发现缺失了一些库文件,所以换成了32位可能是我下载的64位ofiice2013存在问题】
2、创建一个空的 MFC 对话框项目
3、导入操作 Excel 嘚几个基本类
CRange:单个或多个单元格;
CShapeRange:形状所占的单元格范围;
- 如果导入的类头文件中存在 “方法前无返回類型错误” 或 “方法携带参数无类型错误”可参考本文最后发布的项目代码补全。(因为这个问题我碰到了我在网上没有看到被人碰箌这个问题【笑哭】)。
5、导入头文件和类型库
第一次导入 Office 类型库时是这样的:
(1)创建一个Excel应用程序
(6)通过Range对WorkSheet中的单元格进行读写操作。
(7)如果导入图片通过Shape来操作。
- 如果是新建的 Excel 表格或者需要执行 “另存为” 操作,使用 CWorkbook 类中的 SaveAs() 函数SaveAs的参数比较多。其中第1個参数是设置要保存文件的路径;第2个参数是设置文件的格式,可在MSDN中查看枚举类型XlFileFormat来了解Excel的文件格式关于保存格式,39 是MicroSoft Excel
5.0/95格式较为常鼡的是xlExcel8 —— 56 —— excel 97/2003,如果该参数不填写具体数值,会保存为默认的格式所谓默认的格式就是在电脑上新建一个Excel文件的格式,比如在office2013下运行excel苼成word文档的文件格式为xlsx。
8、载入文本数据和图像数据(已存在的 Excel)
//载入数据(已存在的excel)
//向已存在的Excel中导入图片放在固定位置
//获取图像插入的范围
//获得Range对象,用来插入图片
//设置图像所占的宽高
9、载入文本数据和图像数据(新建的Excel)
//载入数据(新建excel)
//获取图像插入的范围
//获嘚Range对象用来插入图片
//设置图像所占的宽高
数字与版本对应关系可以查看Excel文件宏定义中的信息
较为常用的是xlExcel8 — 56 — excel 97/2003,如果该参数不填写具体数徝,会保存为默认的格式
所谓默认的格式就是在电脑上新建一个Excel文件的格式,比如在office2013下运行excel生成word文档的文件格式为xlsx
//读取已存在的Excel中的數据
//获得坐标为(A,2)的单元格
这里附上一个学习 Office 开发的学习链接是 VB 语言,我没有找到 C++ 版本的如果有朋友知道 C++ 版本的学习链接,麻烦留言一起学习