首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

利用COM编程兑现在VC中对Excel2003的导入和导出

2013-04-09 
利用COM编程实现在VC中对Excel2003的导入和导出1、导入excell.exe相关组件:a、在添加类中选择typelib中的MFC

利用COM编程实现在VC中对Excel2003的导入和导出

1、导入excell.exe相关组件:

a、在添加类中选择typelib中的MFC类;

b、选择office安装目录下的excell.exe;

c、导入如下的组件:利用COM编程兑现在VC中对Excel2003的导入和导出

需要选_Application、_Workbook、Workbooks、_Worksheet、Worksheets、Range

2、在stdafx.h下添加如下头文件

::CoInitialize(NULL);//export to excel//get the export file pathCString fname = L"c:\\2.xls";//保存到c:\\2.xls//define the objectsCApplication objApp;CWorkbooks objBooks;CWorkbook objBook;CWorksheets objSheets;CWorksheet objSheet;CRange objRange;COleVariant covOptional((long)DISP_E_PARAMNOTFOUND,VT_ERROR);COleVariant covTrue((short)TRUE),covFalse((short)FALSE),varFormat((short)-4143),varCenter((short)-4108),varLeft((short)-4131),varText(L"TEXT",VT_BSTR);//creat excelobjApp.m_bAutoRelease = TRUE;if (!objApp.CreateDispatch(L"Excel.Application")){AfxMessageBox(L"Failed to connect to excel!");return ;}//get WorkbooksobjBooks = objApp.get_Workbooks();//open excel fileobjBook.AttachDispatch(objBooks.Add(_variant_t("")));//get worksheetsobjSheets = objBook.get_Worksheets();//get worksheetobjSheet = objSheets.get_Item((_variant_t)short(1));//set worksheet nameCString sheetname = L"sheetname";objSheet.put_Name(sheetname);//write to cellsCString s1;CString s;pair<long,long> sNum;CRange objRange1;int row,col;CString strRow;CString strName = fname;char cCell;for (row = 1;row <= strResultNum.first;row++){for (col = 1;col <= strResultNum.second;col++){//get the unit headcCell = 'A' + col - 1;strName.Format(_T("%c"),cCell);strRow.Format(_T("%d"),row);strName += strRow;s1.Format(strName);objRange1 = objSheet.get_Range(_variant_t(s1),_variant_t(s1));//get the unit valuesNum.first = row;sNum.second = col;s = strResult[sNum];objRange1.put_FormulaR1C1(_variant_t(s));}}//saveobjBook.SaveAs(_variant_t(fname),varFormat,covOptional,covOptional,covOptional,covOptional,0,covOptional,covOptional,covOptional,covOptional,covOptional);//releaseobjApp.Quit();objRange.ReleaseDispatch();objSheet.ReleaseDispatch();objSheets.ReleaseDispatch();objBook.ReleaseDispatch();objBooks.ReleaseDispatch();


热点排行