使用MFC操作EXCEL文件 一、加载 1、 在VC6.0里创建一个MFC工程 2、打开MFC ClassWizard窗口(查看—>建立类向导),选择Automation,单击Add Class按钮,选择From a type library...,弹出文件选择对话框,之后定位到C:\Program Files\Microsoft Office\OFFICE11\EXCEL.EXE,在生成类中添加所有的对象(其实添加需要的即可,为了简便,不出错保留了冗余),如下图。 3、返回编辑器,查看工程文件,可发现多了EXCEL.H及EXCEL.CPP两个文件,拷贝出来,放在VS2005需要使用excel的工程文件中。 4. 打开stdafx.h头文件确保包含如下头文件: #include
(这个一般有了) #include "excel.h" (手动添加这个即可) 5. 打开TestExcel.cpp文件,修改CTestExcelApp::InitInstance(),加入如下代码: if( !AfxOleInit() ){ AfxMessageBox("初始化Ole出错!"); return FALSE; } 为保证编译时不产生重复定义错误(可以验证一下是否成功加载,没有也能正常执行),我编译时出现了很多“类重复定义”异常,打开excel.h文件,在文件开始位置加入如下代码: #if !defined _HEAD_FILE_EXCEL9_ #define _HEAD_FILE_EXCEL9_ 相应的,在文件末尾加入: #endif 成功 二、操作EXCEL文件 1. 新建一个excel表,并填充两个单元格的实例 void CTestExcelDlg::OnButton1() { //Workbooks—>Workbook —>Worksheets—>Worksheet —>Range _Application app; //Excel应用程序接口 Workbooks books; //工作薄集合 _Workbook book; //工作薄 Worksheets sheets; //工作表集合 _Worksheet sheet; //工作表 Range range; //Excel中针对单元格的操作都应先获取其对应的Range对象 Font font; Range cols; /* COleVariant类为VARIANT数据类型的包装,在自动化程序中,通常都使用 VARIANT数据类型进行参数传递。故下列程序中,函数参数都是通过COleVariant 类来转换了的。 */ //covOptional 可选参数的VARIANT类型 COleVariant covOptional((long)DISP_E_PARAMNOTFOUND, VT_ERROR); if( !app.CreateDispatch("Excel.Application") ){ this->MessageBox("无法创建Excel应用!"); return; } //获取工作薄集合 books=app.GetWorkbooks(); //添加一个工作薄 book=books.Add(covOptional); //获取工作表集合 sheets=book.GetSheets(); //获取第一个工作表 sheet=sheets.GetItem(COleVari...