MFC中操作word和excel.doc
文本预览下载声明
应用程序运行界面如图所示:
一、首先在VC6.0中创建MFC应用程序,类型为基本对话框,MFC库选静态的DLL(否则编译之后在其他电脑上无法运行),其他选项默认。然后按Ctrl+W调出MFC类向导,从Word和Exce的安装根目录下导入Word和Excel的库(word:MSWord.dll,Excel:excel.exe(选全部文件下拉列表才能看到)),然后分别导入Word中的四个类( _Application,Documents,_Document,Range)和Excel中的五个类(_Application,Workbooks,Worksheets,_Workbook,_Worksheet,Range),注意导入Excel中的_Application和Range类时要重命名(_Application_Excel,Range_Excel),要不然和Word导入的类重名了。
/************************************************************************/ /* 工程名为Nichole7 */ /************************************************************************/二、首先在CNichole7App::InitInstance()中最前面加入:
/************************************************************************/ /* 初始化COM库 */ /************************************************************************/ if (::CoInitialize(NULL) != S_OK) { AfxMessageBox(初始化COM支持库失败!); exit(1); }
然后在return FALSE前面加入:
/************************************************************************/ /* 释放COM库*/ /***********************************************************************/ ::CoUninitialize();
三、头文件
#include msword.h //与Word操作相关的类#include excel.h //与Excel操作相关的类#include afxtempl.h //CMap类的头文件#include AtlBase.h //新增加了一个头文件,为使用CComVariant替代VARIANT做准备
/***1.建立工程文件不要以excel命名,因为添加类的时候会默认生成excel.h和excel.cpp文件**2.添加excel的类时,要改名,要不然_Application和Range类会重定义(因为word里也会添加进有同样的类)*/
#ifdef _DEBUG#define new DEBUG_NEW#undef THIS_FILEstatic char THIS_FILE[] = __FILE__;#endif
#define LINE_SIZE 100 //Word行数(以换行符分隔)#define EXCEL_SIZE 50 //Excel的单元格数#define ITEM_COUNT 10 //歧义词最多项数
BOOL InitWord(_Application wordApp);BOOL InitExcel(_Application_Excel _app);
int Split(char *token,CString strs,CString *str,char *seps);void ExtractString(CMapCString, LPCTSTR, CString, LPCTSTR stringMap,CMapCString, LPCTSTR, CString, LPCTSTR ItemMap,const CString strs,/*const CString seps=:*/ const CString seps);BOOL OpenExcelFile(LPCTSTR xlsFileName,_Application_Excel _app,LPDISPATCH lpDispatch,Workbooks _books,_Workbook _
显示全部