把网上的一些文章整理了一下

把EXCEL9.OLB里的几个常用类库导出,方便使用

***************************************************

我已导出的类
CApplication.h     ->     _Application接口
CWorkbooks.h    ->     Workbooks接口
CWorkbook.h       ->     _Workbook接口
CWorksheets.h   ->     Worksheets接口
CWorksheet.h     ->     _Worksheet接口
CRange.h            ->     Range接口

ExcelFile.h
ExcelFile.cpp      ->     MSN BLOG上找到的一个包装类,还不错
(转自)http://wzqxp2002.spaces.live.com/blog/cns!91353f4c90156be7!235.entry
***************************************************

下载地址: http://www.citree.com/beiouwolf/excel.rar

直接包含到项目里就能使用了
如果需要其他特殊的类库或者喜欢自己导出类库,请看下面

***************************************************

VC 6中 使用excel2000的方法

***************************************************

首先利用Visual C++ 6.0,建立一个MFC基于对话框的工程项目,共享DLL,Win32平台。工程名称ExcelTest。在主对话框中加入一个按钮,
ID IDC_EXCELTEST
Caption Test Excel
双击该按钮,增加成员函数void CExcelTestDlg::OnExceltest()。
在BOOL CExcelTestApp::InitInstance()中,dlg.DoModal();之前增加代码:
if (CoInitialize(NULL)!=0)
{
AfxMessageBox("初始化COM支持库失败!");
exit(1);
}
在return FALSE; 语句前,加入:
CoUninitialize();
选择Menu->View->ClassWizade,打开ClassWizade窗口,选择Add Class->From a type library,选择D:/Program Files/Microsoft Office/office/Excel9.OLB(D:/Program Files/Microsoft Office/是本机上Microsoft Office 2000的安装目录,可根据个人机器上的实际安装目录修改)。选择_Application、Workbooks、_Workbook、Worksheets、_Worksheet、Range,加入新类,分别为_Application、Workbooks、_Workbook、Worksheets、_Worksheet、Range,头文件Excel9.h,源文件Excel9.cpp。
在ExcelTestDlg.cpp文件的头部,#include "ExcelTestDlg.h"语句之下,增加 :
#include "comdef.h"
#include "Excel9.h"
在void CExcelTestDlg::OnExceltest() 函数中增加如下代码:
void CExcelTestDlg::OnExceltest()
{
_Application ExcelApp;
Workbooks wbsMyBooks;
_Workbook wbMyBook;
Worksheets wssMysheets;
_Worksheet wsMysheet;
Range rgMyRge;
//创建Excel 2000服务器(启动Excel)

if (!ExcelApp.CreateDispatch("Excel.Application",NULL))
{
AfxMessageBox("创建Excel服务失败!");
exit(1);
}
//利用模板文件建立新文档
wbsMyBooks.AttachDispatch(ExcelApp.GetWorkbooks(),true);
wbMyBook.AttachDispatch(wbsMyBooks.Add(_variant_t("g://exceltest//MyTemplate.xlt")));
//得到Worksheets
wssMysheets.AttachDispatch(wbMyBook.GetWorksheets(),true);
//得到sheet1
wsMysheet.AttachDispatch(wssMysheets.GetItem(_variant_t("sheet1")),true);
//得到全部Cells,此时,rgMyRge是cells的集合
rgMyRge.AttachDispatch(wsMysheet.GetCells(),true);
//设置1行1列的单元的值
rgMyRge.SetItem(_variant_t((long)1),_variant_t((long)1),_variant_t("This Is A Excel Test Program!"));
//得到所有的列
rgMyRge.AttachDispatch(wsMysheet.GetColumns(),true);
//得到第一列
rgMyRge.AttachDispatch(rgMyRge.GetItem(_variant_t((long)1),vtMissing).pdispVal,true);
//设置列宽
rgMyRge.SetColumnWidth(_variant_t((long)200));
//调用模板中预先存放的宏
ExcelApp.Run(_variant_t("CopyRow"),_variant_t((long)10),vtMissing,vtMissing,
vtMissing,vtMissing,vtMissing,vtMissing,vtMissing,vtMissing,vtMissing,
vtMissing,vtMissing,vtMissing,vtMissing,vtMissing,vtMissing,vtMissing,
vtMissing,vtMissing,vtMissing,vtMissing,vtMissing,vtMissing,vtMissing,
vtMissing,vtMissing,vtMissing,vtMissing,vtMissing,vtMissing);
//打印预览
wbMyBook.SetSaved(true);
ExcelApp.SetVisible(true);
wbMyBook.PrintPreview(_variant_t(false));
//释放对象
rgMyRge.ReleaseDispatch();
wsMysheet.ReleaseDispatch();
wssMysheets.ReleaseDispatch();
wbMyBook.ReleaseDispatch();
wbsMyBooks.ReleaseDispatch();
ExcelApp.ReleaseDispatch();
}

******************************************************

VS.NET中使用方法

******************************************************

导入类库的时候,在解决方案管理器中右键点击项目 -> 添加类
选择MFC -> 类型库中的MFC的类

声明类库的时候方法名不一样

包含的H文件不是 excel9.h  , 
#include "CApplication.h"
#include "CWorkbook.h"
#include "CWorkbooks.h"
#include "CWorksheet.h"
#include "CWorksheets.h"
#include "CRange.h"
#include "comdef.h"

类型声明改成
CApplication ExcelApp;
CWorkbooks    wbMyBooks;
 CWorkbook   wbMyBook;
 CWorksheets   wssMysheets;
 CWorksheet   wssMysheet;
 CRange        rgMyRge;

在MFC中使用EXCEL API (一)相关推荐

  1. 关于MFC中读取EXCEL文件的操作

    转自:点击打开链接 .h文件的源码代码如下: 其中的头文件都是OLE的头文件.如何导出可以参考 http://blog.csdn.net/wyz365889/article/details/75999 ...

  2. MFC中的消息处理函数

    1.在Windows API编程中,直接在消息处理函数中编写WM_PAINT处理代码. 2.在MFC中,CFrameWnd的消息处理过程在哪里呢?MFC时如何将消息处理函数和窗口关联起来的. 在CFr ...

  3. mfc c语言 编辑器,语法高亮编辑控件Scintilla在MFC中的简单使用

    项目中要使用代码编辑器,搜索之后,发现了强大的编辑器控件Scintilla. 1.简介 Scintilla是一款开源的语法高亮编辑器控件,官方网站:http://www.scintilla.org/. ...

  4. MFC中的GDI绘图

    MFC中的GDI绘图 目录(?)[+] 什么是GDI 什么是DC MFC中与GDI有关的类 获取设备环境 设置坐标映射 创建绘图工具并选入DC 调用DC绘图函数绘图 三坐标映射实例 一.关于GDI的基 ...

  5. c++:MFC中sqlite3的使用(附实际案例)

    MFC中sqlite3的使用 sqlite3介绍 sqlite3安装 常用API函数 操作流程 接口函数 执行sql语句函数 回调函数 MFC中案例实践 控制台实践 sqlite3介绍 SQLite ...

  6. 转:MFC中创建多线程

    MFC中创建多线程 MFC的多线程函数必须声明为静态的或者是全局函数(不同的在于全局函数不能访问类的私有静态成员,而静态类函数可以):但这样的线程函数只能访问静态的成员变量,要实现访问类的其他成员,可 ...

  7. JAVA EXCEL API详解

    2019独角兽企业重金招聘Python工程师标准>>> 使用Windows操作系统的朋友对Excel(电子表格)一定不会陌生,但是要使用Java语言来操纵Excel文件并不是一件容易 ...

  8. MFC中如何从EDIT控件中获取文字

    MFC中获取文本框的方法不同于C#,有点麻烦,主要有以下两种方法: 一.API法 用函数:GetdlgItemText获取文本,SetdlgItemText显示文本 [cpp] view plain ...

  9. 多线程编程之二——MFC中的多线程开发

    五.MFC对多线程编程的支持 MFC中有两类线程,分别称之为工作者线程和用户界面线程.二者的主要区别在于工作者线程没有消息循环,而用户界面线程有自己的消息队列和消息循环. 工作者线程没有消息机制,通常 ...

最新文章

  1. 信息与计算机科学专业自荐书,信息与计算科学专业的自荐信
  2. java 多线程Callable和Runable执行顺序问题详解
  3. Codeforces Round #547 (Div. 3) D
  4. android 获取sim卡,Android 获取手机SIM卡运营商
  5. 洛谷P2463 Sandy的卡片【后缀数组】【二分】
  6. android 在什么情况下会主动gc_Python 什么情况下会生成 pyc 文件?
  7. 棋牌游戏服务器架构: 详细设计(三) 数据库设计
  8. python子进程kerberos_Anaconda3的python找不到kerberos凭证缓存
  9. accept 返回0_使用Vue3.0新特性造轮子 WidgetUI3.0 (Upload上传文件组件)
  10. cotlin java go_Aspectj 在Android中的简单使用(Java + Kotlin)-Go语言中文社区
  11. java中如何切割图片_Java 切割图片代码
  12. 100句自我激励的名言佳句
  13. 【Excel从头开始】-3 从网页导出数据到Excel
  14. 沙盘模拟软件_我院学生参加第十六届全国大学生“新道杯”沙盘模拟经营大赛喜获佳绩...
  15. 由于应用程序配置不正确,应用程序未能启动。重新安装应用程序可能会纠正这个问题
  16. 如何使用flex布局,实现三个div垂直居中布局
  17. 外贸小公司如何做谷歌SEO优化
  18. 语句摘抄——第28周
  19. 淘宝客接入PHP(一)
  20. 计算机毕业是先就业还是考研,先工作还是先考研?这些专业更适合先就业

热门文章

  1. 开发小程序40个技术窍门,纯干货!
  2. DEBUG命令使用详解
  3. 几步教会你路径配合动画的制作
  4. 放假啦~啦~~五一你准备做点什么?
  5. 京瓷TCG057VGLCA-G00液晶模组 5.7寸LED背光工业液晶屏
  6. 高考16个突发事件处理方法大全,一定会需要!
  7. python 归一化
  8. [编程题]手机屏幕解锁模式vivo笔试题
  9. js实现点击空白部分隐藏div
  10. Siamese系列文章