VC操作Excel的方法技能提升篇文档格式.docx
- 文档编号:13309828
- 上传时间:2022-10-09
- 格式:DOCX
- 页数:19
- 大小:39.97KB
VC操作Excel的方法技能提升篇文档格式.docx
《VC操作Excel的方法技能提升篇文档格式.docx》由会员分享,可在线阅读,更多相关《VC操作Excel的方法技能提升篇文档格式.docx(19页珍藏版)》请在冰豆网上搜索。
_Worksheetwht;
Worksheetswhts;
LPDISPATCHlpDisp;
并在app.cpp的InitInstance方法中加入下面两句AfxInitOle();
AfxEnableControlContainer();
C,这里我没有像上面一样完全用程序来生成一个Excel文件,而是在开始时就在当前目录下生成了一个Excel文件,在对话框上我设置了两个按钮,下面是"
显示"
按钮的代码:
//创建Excel服务器
if(!
exlapp.CreateDispatch("
Excel.Application"
))
{
AfxMessageBox("
无法启动Excel服务器!
"
);
return;
}
COleVariant
avar((long)DISP_E_PARAMNOTFOUND,VT_ERROR);
exlapp.SetVisible(TRUE);
//使Excel可见
exlapp.SetUserControl(TRUE);
//允许其它用户控制Excel,否则Excel将一闪即逝.
//Openanexcelfile
charpath[MAX_PATH];
GetCurrentDirectory(MAX_PATH,path);
CStringstrPath=path;
strPath+="
\\VCOpExcel"
;
wbks.AttachDispatch(exlapp.GetWorkbooks());
lpDisp=wbks.Open(strPath,
avar,avar,avar,avar,avar,avar,avar,avar,avar,avar,avar,avar,avar,avar);
wbks.ReleaseDispatch();
exlapp.ReleaseDispatch();
D,与上面第一种方法一样,可以插入记录:
UpdateData();
//读入数据
if("
==m_name)
//判断名字输入有效
MessageBox("
Pleaseinputarightname"
if(0>
=m_age||100<
=m_age)
//判断年龄输入有效
Pleaseinputarightage"
char*p=strupr(_strdup(m_gener));
if(strcmp(p,"
FEMALE"
)&
&
strcmp(p,"
MALE"
))//判断性别输入有效
Pleaseinputarightgener"
Rangerange;
RangeusedRange;
))//启动服务器
lpDisp=wbks.Open(strPath,
//初始化.
wbk.AttachDispatch(lpDisp);
whts.AttachDispatch(wbk.GetWorksheets());
lpDisp=wbk.GetActiveSheet();
wht.AttachDispatch(lpDisp);
usedRange.AttachDispatch(wht.GetUsedRange());
range.AttachDispatch(usedRange.GetRows());
longiRowNum=range.GetCount();
//已经使用的行数
range.AttachDispatch(wht.GetCells());
range.SetItem(COleVariant(long(iRowNum+1)),COleVariant(long
(1)),COleVariant(m_name));
range.SetItem(COleVariant(long(iRowNum+1)),COleVariant(long
(2)),COleVariant(m_age));
range.SetItem(COleVariant(long(iRowNum+1)),COleVariant(long(3)),COleVariant(m_gener));
wbk.Save();
wbk.Close(avar,COleVariant(strPath),avar);
wbks.Close();
exlapp.Quit();
(完)
分享到新浪微博
阅读(802)|评论
(2)|收藏(0)|打印|举报
前一篇:
结婚流程(转)
后一篇:
vc
excel
操作补充
评论
重要提示:
警惕虚假中奖信息,点击查看详情
免费任选1000款游戏新手卡[发评论]
你好:
2007-01-1112:
30:
31
我参考你的文章做了一下关于excel的操作
但是执行
ExcelApp.CreateDispatch("
NULL))
AfxmessageBox("
创建Excel服务失败"
exit
(1);
总是失败。
博主回复:
拼命三郎:
2007-01-1209:
06:
12
欢迎光临我的blog
:
>
对组件得先进行初始化COM
在.app
文件的InitInstance()函数加入AfxOleInit();
或
if
(CoInitialize(NULL)!
=0)
{
初始化COM支持库失败!
VC中操作excel表格收藏
摘要:
使用MicrosoftOffice所带的控件来实现代码操作excel表格。
操作系统是MicrosoftXP,办公套装是MicrosoftOffice2003,编程环境是MicrosoftVisualStudio6.0,一切都是Microsoft。
我最近要将数据库中的内容查询出来放到excel表格以便打印,所以上网找了这方面的内容,这里主要是抛砖引玉。
从思路上来看,操作excel表格就是将其打开,然后写入/读出数据,然后关闭。
首先创建一个程序(我的例子是一个MFC的单文档程序),在程序的入口处和出口处先作这样两个步骤来支持COM库:
在程序入口处CXXXApp:
InitInstance()函数AfxEnableControlContainer();
语句之后加入下面几行:
if(CoInitialize(NULL)!
=0)
AfxMessageBox(“初始化COM支持库失败!
”);
exit
(1);
假如这个条件不通过就不能运行起程序。
在程序的出口处CXXXApp:
ExitInstance()函数return语句之前加入下面这句话:
CoUninitialize();
来释放COM支持库。
这样对COM支持库的代码已经完成。
下面要从Office的安装目录中找到对VC操作excel文件的动态库,在某些版本下这个文件是Excel8.olb或者Excel9.olb,在我的版本中是excel.exe这个exe也是动态库的形式,是微软公司主要的文件结果之一。
选择vc的View菜单里面的ClassWizad命令,会弹出一个对话框;
然后点击AddClass…按钮选择Fromatypelibrary,会弹出一个打开对话框,从这里打开Office安装目录下…\Office11\EXCEL.EXE文件,从里面选择几个要用到的类:
_Application,Workbooks,_Wrokbook,Worksheets,_WorkSheet,Range,点击OK按钮。
会在程序中生成一个excel.h和excel.cpp文件,这些文件中包含了刚才我们选择的几个类的代码。
下面介绍一下这几个类:
在vc操纵excel的exe动态库里面有好多个对象模型,就是刚才在创建过程中看到的那个列表,但是经常用到的有这么几个:
_Application,Workbooks,_Wrokbook,Worksheets,_WorkSheet,Range,Charts和_Chart,最后面的两个是用来操作图表的,我没有用到所以这里也就不记录了。
_Application:
这里的Application就是Excel本身,众所周知,一个Excel可以包含多个工作簿,每个工作簿又可以包含多个工作表,而每个工作表又可以包含多个区域或者图表,所以这里他们是树型的结构关系,而application最基本的一个功能就是找到它的子项工作簿。
果然,我们在引入我们程序的Application类中看到了这样的成员函数:
GetWorkbooks()。
既然application就是excel,那
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- VC 操作 Excel 方法 技能 提升