CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
不看会后悔的Windows XP之经验谈 简单快捷DIY实用家庭影院
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  VC/MFC >  基础类

excel调用问题

楼主zhaolaoxin()2002-09-21 18:21:46 在 VC/MFC / 基础类 提问

请问在VC中如何创建和使用excel(或word)对象?  
  而且如何判断机器中安装了excel和word?它们的版本是多少?  
  问题点数:50、回复次数:5Top

1 楼oldworm(oldworm)回复于 2002-09-21 19:48:46 得分 20

将excel作为一个进程外服务器创建  
  至于判断版本,可以读主文件版本,就是主执行文件的版本。BOOL   GetFileVersion   (LPCTSTR   lpszFileName,   char   *szVer,   int   size)  
  {  
  UINT     uVersionLen;  
  DWORD   dwVerHnd   =   0;  
  LPSTR   lpstrVffInfo   =   NULL;  
  VS_FIXEDFILEINFO   *pFixedInfo;  
   
          DWORD   dwVerInfoSize   =   GetFileVersionInfoSize((char   *)lpszFileName,   &dwVerHnd);  
          if(dwVerInfoSize   ==   0){  
                  return   FALSE;  
  }  
   
          lpstrVffInfo   =   new   char[dwVerInfoSize];  
          if   (lpstrVffInfo   ==   NULL)  
                  return   FALSE;       //   Allocation   failed  
   
          if   (!GetFileVersionInfo((char   *)lpszFileName,   dwVerHnd,   dwVerInfoSize,   lpstrVffInfo)){  
  delete   lpstrVffInfo;  
                  return   FALSE;  
          }  
   
  if(!   VerQueryValue(lpstrVffInfo,_T("\\"),(void**)&pFixedInfo,(UINT   *)&uVersionLen))  
  {  
  delete   lpstrVffInfo;  
  return   FALSE;  
  }  
  //暂时只取前面三个  
  _snprintf(     szVer,   size,   "%u.%u.%u",    
  HIWORD   (pFixedInfo->dwFileVersionMS),  
          LOWORD   (pFixedInfo->dwFileVersionMS),  
          HIWORD   (pFixedInfo->dwFileVersionLS));  
          //LOWORD   (pFixedInfo->dwFileVersionLS));    
  szVer[size   -1]   =   0;  
   
  delete   lpstrVffInfo;  
          return   TRUE;  
  }  
   
   
  Top

2 楼masterz(www.fruitfruit.com)回复于 2002-09-21 21:17:31 得分 25

search   Q178749   in   MSDN  
            _Application   m_app;    
          LPDISPATCH   pDisp;    
          LPUNKNOWN   pUnk;    
          CLSID   clsid;    
          BeginWaitCursor();    
          ::CLSIDFromProgID(L"Excel.Application",&clsid);    
          if(::GetActiveObject(clsid,NULL,&pUnk)==S_OK)    
          {    
                  VERIFY(pUnk->QueryInterface(IID_IDispatch,(void**)&pDisp)==S_OK);    
                  m_app.AttachDispatch(pDisp);    
                  pUnk->Release();    
          }    
          else    
          {    
                  if(!m_app.CreateDispatch("Excel.Application"))    
                  {    
                          AfxMessageBox("excel   program   not   found");    
                  }    
          }    
          EndWaitCursor();Top

3 楼Fishcat()回复于 2002-09-21 21:40:13 得分 5

execel完全是组件化开发的产物,他的可重用对象只要安装了execel就存在  
  与系统之中。你可以创建com的客户端对他进行调用就行了。Top

4 楼AroundClockDancer(夜行人)回复于 2002-09-22 00:03:29 得分 0

这段用VB写可简单极了,我帮别人改过的。用VC怎么这么麻烦呀?Top

5 楼AroundClockDancer(夜行人)回复于 2002-09-22 00:04:13 得分 0

用   import   和SMART   POINTER难道不可以?Top

相关问题

  • 调用文本(Excel)
  • excel调用java类
  • 调用Excel - 50分
  • excel公式调用
  • 如何调用Excel文件?
  • VC调用EXCEL的问题
  • vb调用excel的问题
  • CB对Excel的调用!
  • 调用Excel的问题
  • 程序中调用excel!

关键词

  • excel
  • 版本
  • application
  • null
  • lpstrvffinfo
  • pfixedinfo
  • dwverinfosize
  • dwverhnd
  • szver
  • punk

得分解答快速导航

  • 帖主:zhaolaoxin
  • oldworm
  • masterz
  • Fishcat

相关链接

  • Visual C++类图书
  • Visual C++类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo