您的位置:首页 > 其它

VC2010操作EXCEL

2013-02-05 14:44 363 查看
环境:

Windows7

Microsoft Visual Studio 2010

Microsoft Office Excel 2003/2010

1.        新建VC工程

2.        添加Excel类库

在工程名上右键,选择增加->类,选择TypeLib中的MFC类(类向导中同样可以添加)

添加以下类

CApplication 
CWorkbook 
CWorkbooks 
CWorksheet 
CWorksheets 
CRange 

3.        修改头文件

在刚添加的几个头文件中注释掉#import语句

4.        在CRange.h文件中DialogBox()前增加下划线

5.        增加头文件

#include "CApplication.h"
#include "CFont0.h"
#include "CRange.h"
#include "CWorkbook.h"
#include "CWorksheet.h"
#include "CWorkbooks.h"
#include "CWorksheets.h"

6.        编写代码导出.xls文件

 COleVariant covOptional((long)DISP_E_PARAMNOTFOUND, VT_ERROR);
CApplication objApp;
CWorkbook objBook;
CWorkbooks objBooks;
CWorksheet objSheet;
CWorksheets objSheets;
CRange objRange;

if (!objApp.CreateDispatch(_T("Excel.Application")))
{
AfxMessageBox(_T("无法启动Excel服务器!"));
return;
}
objApp.put_Visible(FALSE);
objBooks = objApp.get_Workbooks();
objBook = objBooks.Add(covOptional);
//objBook = objBooks.Open( TEXT("D:\\Test.xls"),
// covOptional, covOptional, covOptional, covOptional,
// covOptional, covOptional, covOptional, covOptional,
// covOptional, covOptional, covOptional, covOptional);
objSheets = objBook.get_Worksheets();
objSheet = objSheets.get_Item(COleVariant((short)1));
objRange = objSheet.get_Range(COleVariant( TEXT("A1")), COleVariant( TEXT("A1")));

//objRange.SetValue2(COleVariant(str));
objRange.put_Item(COleVariant(long(1)), COleVariant((long)1), COleVariant(TEXT("")));
objRange = objSheet.get_Columns();
objRange.AutoFit();

objBook.SaveAs(COleVariant(strPath), /*TEXT("D:\\Test.xls")),*/
covOptional, covOptional, covOptional, covOptional,
covOptional,(long)0, covOptional, covOptional, covOptional,
covOptional,covOptional);

objApp.put_Visible(TRUE);

objBook.Close(COleVariant((short)FALSE), covOptional, covOptional);
objApp.Quit();
 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: