vc操作excel:[1]初始化连接、创建和写入

2025-10-24 16:56:51

1、新建MFC工程,工程名为 3 。在选择From a type library时,选择Microsoft Office安装目录下的office11文件夹,将文件过滤器改为 所有文件,找到excel.exe文件,确定,按shift添加所有的类。(这里有疑问,可参见我的上一篇经验“vc操作word:[1]初始化连接、创建和写入。按:本来想写成系列经验的,奈何百度经验这几天出问题了)

vc操作excel:[1]初始化连接、创建和写入

vc操作excel:[1]初始化连接、创建和写入

2、先初始化COM库,在CMy3App类的InitInstance函数中,加入以下代码:

if(CoInitialize(NULL)!=S_OK)

{

AfxMessageBox("Fail");

return FALSE;

}

vc操作excel:[1]初始化连接、创建和写入

3、新建一个类型为Generic Class的类,命名为CMeExcel

vc操作excel:[1]初始化连接、创建和写入

4、在文件视图区打开MeExcel.h文件,如图所示,加入以下代码:

//头文件

#include"comdef.h"

#include"atlbase.h"

#include"excel.h"

以及

//变量申明和函数定义

_Application m_exApp;   //Application

_Workbook m_exBook;   //表格,单数

Workbooks m_exBooks;  //表格,复数

_Worksheet m_exSheet;  //表单

Worksheets m_exSheets;

Range m_exRange;           //类似于单元格

BOOL CreateApplication();

BOOL CreateWorksheet();

BOOL SetItem();

vc操作excel:[1]初始化连接、创建和写入

5、打开MeExcel.cpp文件,如图加入以下代码:

BOOL CMeExcel::CreateWorksheet()

{

m_exBooks.AttachDispatch(m_exApp.GetWorkbooks());

m_exBook.AttachDispatch(m_exBooks.Add(_variant_t("")));

m_exSheets.AttachDispatch(m_exBook.GetWorksheets());

m_exSheet.AttachDispatch(m_exSheets.GetItem(_variant_t("sheet1")));

return TRUE;

}

BOOL CMeExcel::SetItem()

{

m_exRange.AttachDispatch(m_exSheet.GetCells());

m_exRange.SetItem(_variant_t((long)6),_variant_t((long)4),_variant_t("Hello"));

return FALSE;

}

//参照,word文档建立的方法,会对它有更深刻的理解

vc操作excel:[1]初始化连接、创建和写入

6、现在开始调用类函数,创建excel表格,并写入数据。只需在对话框中添加成员变量 CMeExcel m_meExcel,在对话框初始化函数中加入以下代码:

m_meExcel.CreateApplication();

m_meExcel.CreateWorksheet();

m_meExcel.SetItem();

vc操作excel:[1]初始化连接、创建和写入

vc操作excel:[1]初始化连接、创建和写入

7、点击运行。在第三行第五列显示”Hello“。也就是运行m_meExcel.SetItem();函数的结果。

vc操作excel:[1]初始化连接、创建和写入

8、补充:在第一次编译运行的时候,出现...\vc98\atl\include\atlbase.h(4497) : error C2660: 'VarCmp' : function does not take 3 parameters的错误,打开atlbase.h文件,果断看不懂,按字面意思的理解,VarCmp函数不带3个参数。在网上找资料,彻底被误导了。打开MSDN,查找VarCmp,好吧,我承认技术不行看不懂,但是它说,总共有4个参数,当最后一个参数为1的时候,Ignore case,忽视的情况,不管,直接传个 1 进去。编译成功!

vc操作excel:[1]初始化连接、创建和写入

vc操作excel:[1]初始化连接、创建和写入

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢