资源描述:
《vc操作excel的方法》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、VC操作Excel的方法(2007-01-0521:18:45) 分类:VC,VB,Matlab编程开发A: 从classwizard中addclass处fromtypelibrary,去office的安装目录下引入excel.exe(这是office2003的选择,其他版本都是用olb文件),服务器就算引入了,这时会弹出对话框,要求加入一些类,这些类都是一些接口,里面有大量的方法,类的对象表征着excel文件的一个个部分,常用的有这几个_application,workbooks,_workbook,worksheets,_worksheet,Range,它们分别代表不同的意
2、义._application代表了EXCEL服务器,workbooks表示整个Excel服务器(表现为一个.xls文件)里所有的表,(可以通过"新建"得到多个表,即MDI程序里的一个视窗一样,所有的视窗就是workbooks),_workbook就是一个表,相当于MDI中的一个视窗,worksheets表示所有的表单,每个表都可能有很多表单(建立一个Excel文件之后,打开,可以看到有sheet1,sheet2等,所有这些sheetn就组成了worksheets),_worksheet就表示一个表单,range表示元素的集合.搞清楚上面这几个名词的意思非常重要.B,在dlg.h中声明
3、下面几个变量: _Applicationexlapp; //组件服务器的各个classes _Workbookwbk; Workbookswbks; _Worksheetwht; Worksheetswhts; LPDISPATCHlpDisp; 并在app.cpp的InitInstance方法中加入下面两句AfxInitOle();AfxEnableControlContainer();C,这里我没有像上面一样完全用程序来生成一个Excel文件,而是在开始时就在当前目录下生成了一个Excel文件,在对话框上我设置了两个按钮,下面是"显示"按钮的代码: //创建Excel服务器
4、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]; GetCurrentDir
5、ectory(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()
6、; //读入数据 if(""==m_name) //判断名字输入有效 { MessageBox("Pleaseinputarightname"); return; } if(0>=m_age
7、
8、100<=m_age) //判断年龄输入有效 { MessageBox("Pleaseinputarightage"); return; } char*p=strupr(_strdup(m_gener)); if(strcmp(p,"FEMALE")&&strcmp(p,"MALE"))//判断性别输入有效 { MessageBox("Pleaseinputarig
9、htgener"); return; } Rangerange; RangeusedRange; COleVariant avar((long)DISP_E_PARAMNOTFOUND,VT_ERROR); if(!exlapp.CreateDispatch("Excel.Application"))//启动服务器 { AfxMessageBox("无法启动Excel服务器!"); return; } charpath[MAX_PATH]; G