当前位置:我的异常网» VC/MFC » 用vc生成excel报表,提示“创建excel服务器失败”,

用vc生成excel报表,提示“创建excel服务器失败”,该如何处理

www.myexceptions.net  网友分享于:2015-08-26  浏览:871次

用vc生成excel报表,提示“创建excel服务器失败”

我用VC6.0生成excel 2003报表,使用动态链接库。

我的电脑是Windows XP的,木有问题.但是换别的电脑就有问题了。

Win7的就不行,连程序都打不开,换了几个动态库后才能打开,但老是提示“创建excel服务器失败”,WIN7的装没装VC6.0都一样的错误提示。

找了几台Windows XP的电脑,也不行,能打开程序,但仍提示“创建excel服务器失败”。换成了静态链接库后,有的Windows XP电脑能创建报表成功,有的还是不行。

注册表搜索Excel.Application也是存在的,有值。

请各位大侠指点一下,有木有别的方法?我试了几种别的方式,代码好像都有问题,编译一下好多的错误。。。。

网上找了下,有说CreateDispatch这个是老接口了;新的office用的都是CreateInstance了。用老方法会直接出错的。但是CreateInstance的代码我用着编译一下更出错,不知道是我哪里出错了还是CreateInstance的代码错了。。。

废话了这么多,代码呈上:

void COut::OnBtnReport()

{

//变量定义

_Application ExcelApp;

Workbooks wbsMyBooks;

_Workbook wbMyBook;

Worksheets wssMysheets;

_Worksheet wsMysheet;

Range rgMyRge;

COleVariant

covTrue((short)TRUE),

covFalse((short)FALSE),

covOptional((long)DISP_E_PARAMNOTFOUND, VT_ERROR);

//初始化COM的动态连接库

if(CoInitialize(NULL)==0)

{

AfxMessageBox("无法初始化COM的动态连接库!");

return ;

}

//创建Excel 2000服务器(启动Excel)

if (!ExcelApp.CreateDispatch("Excel.Application",NULL))

{

AfxMessageBox("创建Excel服务失败!");//有的电脑运行到这里就不行了。有的又可以运行

exit(1);

}

ExcelApp.SetVisible(false);//使Excel不可见

ExcelApp.SetUserControl(TRUE);//允许其它用户控制Excel

//利用模板文件建立新文档

char path[MAX_PATH];

GetCurrentDirectory(MAX_PATH,path);

CString strPath = path;

strPath += "\\excel\\testtemplate";

wbsMyBooks.AttachDispatch(ExcelApp.GetWorkbooks(),true);

wbMyBook.AttachDispatch(wbsMyBooks.Add(_variant_t(strPath)));

//得到Worksheets

wssMysheets.AttachDispatch(wbMyBook.GetWorksheets(),true);

//得到sheet1

CString str1;

wsMysheet.AttachDispatch(wssMysheets.GetItem(_variant_t("sheet1")),true);

str1 = "第1页";

wsMysheet.SetName(str1);

for( int i=0;i

{

wsMysheet = wsMysheet.GetNext();

str1.Format("第%d页",i+2);

wsMysheet.SetName(str1);

}

wsMysheet.AttachDispatch(wssMysheets.GetItem(_variant_t("第1页")),true);

//得到全部Cells,此时,rgMyRge是cells的集合

rgMyRge.AttachDispatch(wsMysheet.GetCells(),true);

/****************************************************************************/

for(int setnum=0; setnum < m_ListOut.GetItemCount(); setnum++ )

{

在excel中插入字段///

rgMyRge.SetItem(_variant_t((long)(2+setnum)),_variant_t((long)(1)),

_variant_t( m_ListOut.GetItemText( setnum, 1 ) ) );

}

/**************************************************************************/

/表格保存//

strPath = path;

strPath += "\\excel\\test.xls";

wsMysheet.SaveAs(strPath,vtMissing,vtMissing,vtMissing,vtMissing,\

vtMissing,vtMissing,vtMissing,vtMissing,vtMissing);

ExcelApp.SetVisible(true);

wbMyBook.PrintPreview(_variant_t(false));

///释放对象///

rgMyRge.ReleaseDispatch();

wsMysheet.ReleaseDispatch();

wssMysheets.ReleaseDispatch();

wbMyBook.ReleaseDispatch();

wbsMyBooks.ReleaseDispatch();

ExcelApp.ReleaseDispatch();

wbMyBook.Close(covOptional,COleVariant(strPath),covOptional);

wbsMyBooks.Close();

wsMysheet.Delete();

wssMysheets.Delete();

rgMyRge.Clear();

ExcelApp.Quit();

}

------解决方案--------------------

这个应该是和目标机器装的OFFICE有关,安装完整版的Office然后再试,有很多OFFICE都是

简化版的,东西不全。所以出这个问题。

------解决方案--------------------

文章评论

excel导出 服务器运行失败,用vc生成excel报表,提示“创建excel服务器失败”,该如何处理...相关推荐

  1. php 添加失败是什么原因,安装zblog提示“创建c_option.php失败”的原因和解决办法...

    如果此时的你正在安装ZBlog程序,而恰巧又碰到了"创建c_option.php失败"这样的提示(具体如下图),那么本文将助你解决此问题! 遇到这种情况时,不要慌,首先我们来看一下 ...

  2. oracle vm virtualbox 失败,Oracle VM VirtualBox启动提示“创建COM对象失败”

    摘要: 从工作的第一天开始,Genymotion成为唯一的Android调试工具,体验Genymotion模拟器的快速与便捷,同时也忍受Genymotion安装的痛苦,刚接触Genymotion的时候 ...

  3. php数据库创建文件失败怎么回事,安装zblogPHP提示“创建c_option.php失败”解决方法...

    有zblog用户反应在安装zblog的最后一步时提示"创建c_option.php失败",如下图: 本文来说明下这个问题的原因和解决办法. 问题产生的原因: c_option.ph ...

  4. EasyNVR视频点击开始录像提示“创建录像文件失败”排查

    EasyNVR视频平台一个便捷的功能点就是,当用户在项目中将该系统部署完毕时,只要不断电断网,就可以长时间保持正常运行状态,对维护管理人员来说十分省心. 在项目使用上,有用户会遇到EasyNVR播放直 ...

  5. dist文件部署到服务器,npm run build之后生成的dist如何扔到服务器运行(npm run build之后如何本地运行)...

    运行npm run build之后,会生成一个dist文件夹,里面的目录结构大概是这样的: 生成完的文件我们怎么来运行呢?直接在本地打开inde.html是无法运行的,打包的时候有提示: 构建文件应该 ...

  6. 服务器运行多个jdk版本_如何使用中央管理服务器运行多个查询

    服务器运行多个jdk版本 介绍 ( Introduction ) When you have thousands of SQL Servers, it is very hard to administ ...

  7. 王者荣耀助手服务器繁忙请稍后重试,王者荣耀微信提示网络繁忙/登录失败如何解决...

    王者荣耀微信提示网络繁忙/登录失败如何解决 软件 gushunjun1 2018-04-07 12:31 佚名 2018-04-07 12:31:16 游戏攻略 相信有不少的王者荣耀玩家们刚刚都遇到了 ...

  8. ZDNS参与的《根服务器运行机构不端行为研究报告》正式发布,全球根服务器安全治理又进一步

    近日(7月7日),互联网名称与数字地址分配机构(ICANN)的互联网根服务器咨询委员会(RSSAC)发布了编号为056的咨询报告.这份报告是互联网根服务器咨询委员会首次系统梳理互联网根服务器安全问题. ...

  9. excel导出时 如何根据java后台返回的结果 动态实现excel复选框的勾选

    现在有一个excel的模板,供导出的时候使用(如下图),我们要根据java后台出从数据库取出的数据动态实现P单元格中复选框的勾选, 如果返回的结果是在职,那么在职复选框就被勾选,以此类推. 问题是我们 ...

最新文章

  1. jQuery基础知识准备
  2. JSP生成静态html网页
  3. leetcode112 路径总和
  4. java解析json文件_Java性能优化:正确的解析JSON文件
  5. 浅说项目管理中的Action以及3W1P原则
  6. Jupyter notebook文件默认存储路径以及更改方法
  7. C# winform 如何让TextBox文本内容垂直居中?
  8. 对龙果支付系统的简单了解
  9. 开源Android自定义思维导图控件ThinkMap树状图TreeView(类似xMind那种效果)
  10. 2022蓝牙耳机哪款更值得买?最受欢迎的十大蓝牙耳机排行榜
  11. 基于CNN+tensorflow对搜狐新闻进行分类并对函数进行封装
  12. 狂神说Java---java学习笔记(图片有些问题,有时间将图片从电脑上传上来)
  13. 子比Zibll主题V6.3最新亲测免授权+可用版
  14. 舰r最新服务器,战舰少女R官方网站—战舰少女-与心爱的舰娘一起守护这片海域...
  15. PostgreSQL 15 新特性解读 | 墨天轮优质文章合集
  16. Character.UnicodeBlock中cjk的说明
  17. HEVC中的Merge Mode——x265代码getInterMergeCandidates()函数解析
  18. 基于Sequoia DB巨杉数据库的投资组合评比器(设计思路)
  19. ! [rejected] Dev-1.1.1 -> Dev-1.1.1 (would clobber existing tag)
  20. 再看 AspriseOCR - OCR应用开发

热门文章

  1. linux u盘文件乱码,轻松解决Linux下U盘乱码的方法
  2. vue 剪裁图片 剪裁头像 使用vue-cropper剪裁图片
  3. 编程道路上的困难—怎么克服?
  4. 通信原理学习笔记2-1:模拟调制——相干解调的载波恢复、锁相环(平方环/Costas环)、变频/混频技术
  5. 腾讯沙盒游戏计算机,腾讯新作沙盒创造类游戏,在这里你就是创世主,它会打动你的心吗...
  6. sessionStorage存储数据和取数据
  7. 公司位置怎么上地图,区域网格分布图怎么做
  8. Tabby--一个终端连接工具
  9. ts重点学习72-implement语句
  10. 全球及中国乙二醇单己基醚行业市场深度调研及投资趋势分析报告2022-2028年