资源描述:
《VC++ 中操作EXCEL总结(转)》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、VC++中操作EXCEL总结(转)1、MSDN上的代码,很好的例子#include"excel8.h"//OLEVariantforOptional.COleVariantVOptional((long)DISP_E_PARAMNOTFOUND,VT_ERROR);_ApplicationobjApp;_WorkbookobjBook;WorkbooksobjBooks;WorksheetsobjSheets;_WorksheetobjSheet;RangeobjRange;VARIANTret;//InstantiateExcelandopenanexistingwork
2、book.objApp.CreateDispatch("Excel.Application");objBooks=objApp.GetWorkbooks();objBook=objBooks.Open("C:\Test.xls",VOptional,VOptional,VOptional,VOptional,VOptional,VOptional,VOptional,VOptional,VOptional,VOptional,VOptional,VOptional);objSheets=objBook.GetWorksheets();objSheet=objSheets.
3、GetItem(COleVariant((short)1));//Gettherangeobjectforwhichyouwishtoretrievethe//dataandthenretrievethedata(asavariantarray,ret).objRange=objSheet.GetRange(COleVariant("A1"),COleVariant("C8"));ret=objRange.GetValue();//CreatetheSAFEARRAYfromtheVARIANTret.COleSafeArraysa(ret);//Determinethea
4、rray'sdimensions.longlNumRows;longlNumCols;sa.GetUBound(1,&lNumRows);sa.GetUBound(2,&lNumCols);//DisplaytheelementsintheSAFEARRAY.longindex[2];VARIANTval;intr,c;TRACE("ContentsofSafeArray");TRACE("=====================t");for(c=1;c<=lNumCols;c++){TRACE("ttCol%d",c);}TRACE("");for(
5、r=1;r<=lNumRows;r++){TRACE("Row%d",r);for(c=1;c<=lNumCols;c++){index[0]=r;index[1]=c;sa.GetElement(index,&val);switch(val.vt){caseVT_R8:{TRACE("tt%1.2f",val.dblVal);break;}caseVT_BSTR:{TRACE("tt%s",(CString)val.bstrVal);break;}caseVT_EMPTY:{TRACE("tt");break;}}}TRACE("");}//
6、Closetheworkbookwithoutsavingchanges//andquitMicrosoftExcel.objBook.Close(COleVariant((short)FALSE),VOptional,VOptional);objApp.Quit(); 2、不错的一篇文章在VC中彻底玩转Excel作者:龚敏来源:子玉山庄更新:10/8/2004如今Excel是越来越重要了,在我们自己开发的程序中不免要和Excel打交道了。利用Automation技术,我们可以在不去了解数据库的情况下玩转Excel,而且你会发现一切竟如此轻松!好了,咱们开始吧,我不喜欢用
7、长篇累牍的代码来故弄玄虚,所以下面的代码都是切中要害的片段,总体上是个连贯的过程,包括启动Excel,读取数据,写入数据,以及最后的关闭Excel,其中还包括了很多人感兴趣的合并单元格的处理。特别说明以下代码需要MFC的支持,而且工程中还要包含EXCEL2000的定义文件:EXCEL9.H,EXCEL9.CPP********************************************************************************************************