doc文档 Excel-资料汇总_VC操作Excel的方法

实用文档 > 表格/模板 > 表格类模板 > 文档预览
13 页 0 下载 138 浏览 0 评论 0 收藏 3.0分
温馨提示:如果当前文档出现乱码或未能正常浏览,请先下载原文档进行浏览。
Excel-资料汇总_VC操作Excel的方法 第 1 页 Excel-资料汇总_VC操作Excel的方法 第 2 页 Excel-资料汇总_VC操作Excel的方法 第 3 页 Excel-资料汇总_VC操作Excel的方法 第 4 页 Excel-资料汇总_VC操作Excel的方法 第 5 页
下载文档到电脑,方便使用
还有 8 页可预览,继续阅读

Excel-资料汇总_VC操作Excel的方法内容摘要:

VC 操作 Excel 的方法(2007-01-05 21:18:45) 分类:VC,VB,Matlab 编程开发 A: 从 classwizard 中 add class 处 from type library,去 office 的安装目录下引入 excel.exe(这是 office 2003 的选择,其他版本都是用 olb 文件),服务器就算引入了,这时会弹出对话框,要求加 入一些类,这些类都是一些接口,里面有大量的方法,类的对象表征着 excel 文件的一个个部分, 常用的有这几个_application,workbooks,_workbook,worksheets,_worksheet,Range,它们分别代 表不同的意义._application 代表了 EXCEL 服务器,workbooks 表示整个 Excel 服务器(表现为 一个.xls 文件)里所有的表,(可以通过"新建"得到多个表,即 MDI 程序里的一个视窗一样,所有 的视窗就是 workbooks), _workbook 就是一个表,相当于 MDI 中的一个视窗, worksheets 表示 所 有 的 表 单 , 每 个 表 都 可 能 有 很 多 表 单 ( 建 立 一 个 Excel 文 件 之 后 , 打 开 , 可 以 看 到 有 sheet1,sheet2 等,所有这些 sheetn 就组成了 worksheets), _worksheet 就表示一个表单, range 表 示元素的集合. 搞清楚上面这几个名词的意思非常重要. B,在 dlg.h 中声明下面几个变量: _Application exlapp; //组件服务器的各个 classes _Workbook wbk; Workbooks wbks; _Worksheet wht; Worksheets whts; LPDISPATCH lpDisp; 并在 app.cpp 的 InitInstance 方法中加入下面两句 AfxInitOle(); AfxEnableControlContainer(); C,这里我没有像上面一样完全用程序来生成一个 Excel 文件,而是在开始时就在当前目录下 生成了一个 Excel 文件,在对话框上我设置了两个按钮,下面是"显示"按钮的代码: //创建 Excel 服务器 if(!exlapp.CreateDispatch("Excel.Application")) { AfxMessageBox("无法启动 Excel 服务器!"); return; } COleVariant avar((long)DISP_E_PARAMNOTFOUND,VT_ERROR); exlapp.SetVisible(TRUE);//使 Excel 可见 exlapp.SetUserControl(TRUE);//允许其它用户控制 Excel,否则 Excel 将一闪即逝. //Open an excel file char path[MAX_PATH]; GetCurrentDirectory(MAX_PATH,path); CString strPath = path; strPath += "\\VCOpExcel"; wbks.AttachDispatch(exlapp.GetWorkbooks()); lpDisp=wbks.Open(strPath, avar,avar,avar,avar,avar,avar,avar,avar,avar,avar,avar,avar,avar,avar); wbks.ReleaseDispatch(); exlapp.ReleaseDispatch(); D,与上面第一种方法一样,可以插入记录: UpdateData(); //读入数据 if (""==m_name) //判断名字输入有效 { MessageBox("Please input a right name"); return; } if (0>=m_age||100<=m_age) //判断年龄输入有效 { MessageBox("Please input a right age"); return; } char *p=strupr(_strdup(m_gener)); if (strcmp(p,"FEMALE")&&strcmp(p,"MALE")) //判断性别输入有效 { MessageBox("Please input a right gener"); return; } Range range; Range usedRange; COleVariant avar((long)DISP_E_PARAMNOTFOUND,VT_ERROR); if(!exlapp.CreateDispatch("Excel.Application")) //启动服务器 { AfxMessageBox("无法启动 Excel 服务器!"); return; } char path[MAX_PATH]; GetCurrentDirectory(MAX_PATH,path); CString strPath = path; strPath += "\\VCOpExcel"; wbks.AttachDispatch(exlapp.GetWorkbooks()); lpDisp=wbks.Open(strPath, //初始化. avar,avar,avar,avar,avar,avar,avar,avar,avar,avar,avar,avar,avar,avar); wbk.AttachDispatch(lpDisp); whts.AttachDispatch(wbk.GetWorksheets()); lpDisp=wbk.GetActiveSheet(); wht.AttachDispatch(lpDisp); usedRange.AttachDispatch(wht.GetUsedRange()); range.AttachDispatch(usedRange.GetRows()); long iRowNum=range.GetCount();//已经使用的行数 range.AttachDispatch(wht.GetCells()); range.SetItem(COleVariant(long(iRowNum+1)),COleVariant(long(1)),COleVariant(m_name)); range.SetItem(COleVariant(long(iRowNum+1)),COleVariant(long(2)),COleVariant(m_age)); range.SetItem(COleVariant(long(iRowNum+1)),COleVariant(long(3)),COleVariant(m_gener)); wbk.Save(); wbk.Close(avar,COleVariant(strPath),avar); wbks.Close(); exlapp.Quit(); (完) 分享到新浪微博 阅读(802)|评论(2)|收藏(0)|打印|举报 前一篇:结婚流程(转) 后一篇:vc excel 操作补充 评论 重要提示:警惕虚假中奖信息,点击查看详情 [发评论] 你好: 2007-01-11 12:30:31 我参考你的文章做了一下关于 excel 的操作 但是执行 if(!ExcelApp.CreateDispatch("Excel.Application",NULL)) { AfxmessageBox("创建 Excel 服务失败"); exit(1); } 总是失败。 拼命三郎: 2007-01-12 09:06:12 欢迎光临我的 blog :> 对组件得先进行初始化 COM 在.app 文件的 InitInstance()函数加入 AfxOleInit(); 或 if (CoInitialize(NULL)!=0) { AfxMessageBox("初始化 COM 支持库失败!"); exit(1); 免费任选 1000 款游戏新手卡 VC 中操作 excel 表格 收藏 摘要:使用 Microsoft Office 所带的控件来实现代码操作 excel 表格。 操作系统是 Microsoft XP,办公套装是 Microsoft Office 2003,编程环境是 Microsoft Visual Studio 6.0,一切都是 Microsoft。 我最近要将数据库中的内容查询出来放到 excel 表格以便打印,所以上网找了这方面的 内容,这里主要是抛砖引玉。 从思路上来看,操作 excel 表格就是将其打开,然后写入/读出数据,然后关闭。 首先创建一个程序(我的例子是一个 MFC 的单文档程序),在程序的入口处和出口处 先作这样两个步骤来支持 COM 库: 在程序入口处 CXXXApp:: InitInstance()函数 AfxEnableControlContainer();语句之后加入 下面几行: if (CoInitialize(NULL) != 0) { AfxMessageBox(“初始化 COM 支持库失败!”); exit(1); } 假如这个条件不通过就不能运行起程序。 在 程 序 的 出 口 处 CXXXApp:: ExitInstance() 函 数 return 语 句 之 前 加 入 下 面 这 句 话 : CoUninitialize();来释放 COM 支持库。 这样对 COM 支持库的代码已经完成。 下面要从 Office 的安装目录中找到对 VC 操作 excel 文件的动态库,在某些版本下这个 文件是 Excel8.olb 或者 Excel9.olb,在我的版本中是 excel.exe 这个 exe 也是动态库的形式, 是微软公司主要的文件结果之一。选择 vc 的 View 菜单里面的 ClassWizad 命令,会弹出一 个对话框;然后点击 Add Class…按钮选择 From a type library,会弹出一个打开对话框,从 这里打开 Office 安装目录下…\Office11\EXCEL.EXE 文件,从里面选择几个要用到的类: _Application, Workbooks, _Wrokbook, Worksheets, _WorkSheet, Range,点击 OK 按钮。会在程 序中生成一个 excel.h 和 excel.cpp 文件,这些文件中包含了刚才我们选择的几个类的代码。 下面介绍一下这几个类: 在 vc 操纵 exc

本文档由 sddwt2022-04-05 17:20:48上传分享
给文档打分
您好可以输入 255 个字符
本站的域名是什么?( 答案:sciwk.com )
评论列表
  • 暂时还没有评论,期待您的金玉良言