VC2010 对Excel 的操作 1. 创建新的C++工程 创建基于对话框的MFC 程序 2. 添加库、添加Excel 类库 在工程名上右键,选择“添加”—“类”(或者点击菜单栏的“项目”->“添加类”),选择“TypeLib 中的MFC 类”(MFC Class From TypeLib) 类来源选“注册表”,在可用的类型库中选择“Microsoft Excel 11.0 Object Library<1.5>”在接口列表框中选择需要的类,在此,我们选择_Application,_Workbook,Worksheet,Range,Workbooks,Worksheets 这六个就可以了。 可以看到,六个类被添加了进来。 3. 修改头文件 分别将加进来的六个头文件上面的“#import "C:\\Program Files\\Microsoft Office\\OFFICE11\\EXCEL.EXE" no_namespace”注释掉。 4. 添加头文件 在 stdAfx.h 头文件中添加加进来的这几个头文件 #include "CApplication.h" #include "CRange.h" #include "CWorkbook.h" #include "CWorkbooks.h" #include "CWorksheet.h" #include "CWorksheets.h" 5. 修改错误 编译,会出现两个错误: …\crange.h(335): warning C4003: “DialogBoxW”宏的实参不足 …\crange.h(335): error C2059: 语法错误:“,” 双击错误提示,定位在错误行, VARIANT DialogBox() { VARIANT result; InvokeHelper(0xf5, DISPATCH_METHOD, VT_VARIANT, (void*)&result, NULL); return result; } 将该函数名“DialogBox()”前面加“_”下划线,即“_DialogBox()”,这样就可以编译成功了。 6. 在对话框中添加一个编辑框,并为其关联一 CEdit 类型变量 m_Path,添加“打开”按钮,实现打开一已经存在的Excel 文件。并将路径显示在编辑框中。实现代码如下。 void CExportToExcelDlg::OnBnClickedButtonOpen() { CFileDialog file(TRUE,NULL,NULL,OFN_HIDEREADONLY|OFN_OVERWRITEPROMPT, _T("EXCEL文件t(*.xls;*.xlsx)|*.xls;*.xlsx||"),AfxGetMainWnd()); if(file.DoModal()==IDOK) { CString strPath=file.GetPathName(); m_Path.SetWindowTextW(strPath); CApplication app; CWorkbook book; CWorkbooks books; if (!app.CreateDispatch(_T("Excel.Application"))) { MessageBox(_T("Error!Creat Excel Application Server Faile!")); exit(1); } //books.AttachDispatch(app.get_Workbooks(),true); //book.AttachDispatch(books.Add(_variant_t(strPath))...