vc操作excel程序退出的问题

关于vc操作Excel表格后出现Excel.exe进程不能关闭的问题 这段间做了个有关Excel报表导入数据库的小项目,发现在 阅读详情

    公司给了我一个任务,用excel调用模版生成结帐单并进行打印。我在努力的n天以后终于完成了。现在总结一下:
      1.速度问题,vc读写excel的时候速度是很慢的,如果一个一个单元格的读写,能把你给急死。所以在读取和写入excel的时候,我使用了安全数组,这样能够将对应的数据一次性从文件中读出或者是写入。
      2.关于屏蔽掉最后“确定改变文件”的对话框,用Book的close方法
        //定义变量
        COleVariant  covTrue((short)TRUE),
        covFalse((short)FALSE),    covOptional((long)DISP_E_PARAMNOTFOUND, VT_ERROR);
       //关闭book,             不保存
          m_Book.Close(covFalse,COleVariant(strExcelName),covOptional);
      3.关于关闭excel进程的问题,即在
          m_ExcelApp->Quit();    以后系统中仍然有一个excel进程,这种情况绝对是excel中有没有释放的对象,注意这里说的对象不仅仅是自己定义的对象,在系统的运行中excel可能会自己隐性的创建一些对象,对于这些对象也一定要释放。
          excel中的函数 select, m_Sheet.GetRange, chart.add等都会创建新的对象,在不用了以后一定要释放.通用的调试方法是,用创建到最后退出当中要一条一条的进行语句的添加,这样就可以保证最后系统能够顺利退出了.我的程序就是因为在copy操作之前有一个m_sheet.GetRange的函数在copy结束之后没有释放,所以造成excel进程无法释放.网上关于如果杀死excel进程的文章其实是不负责任的做法,对于真正的程序员来说是不可能用那些方法的.就好像修炼的人的心魔一样,一旦用了这种方法,以后自己的技术就不会再有进步了

1.彻底关闭Excel进程
rang.ReleaseDispath();
sheet.ReleaseDispath();
sheets.ReleaseDispath();
book.ReleaseDispath();
books.ReleaseDispath();

ExcelApp.Quit();//ExcelApp,是_Applacation对象,以上几个对象同理。
ExcelApp.ReleaseDispath();
注意:最后两行代码顺序不要反了,否则不能彻底关闭Excel进程,这是关键

2.将Excel文件保存为HTML网页
sheet.SaveAs(strFileName,ColeVariant((long)44),vtMissing,...后面参数全是vtMissing);
sheet.SaveAs(strFileName,vtMissing,vtMissing,...后面参数全是vtMissing);

3.不显示任何警告对话框

在保存文件代码之前加上下面语句
ExcelApp.SetAlertBeforeOverwritting(false);
ExcelApp.SetDisplayAlert(false);

 

VC中将数据导出到Excel表格中 由于项目需要,要把数据库中的数据导出生成excel表格, 阅读详情

相关推荐

瑞芯微Android固件修改实战:从解包到root提权完整流程(附工具包)

本文详细解析了瑞芯微Android固件深度定制全流程,涵盖从固件包解包、系统镜像修改到植入root提权与分区调整的实战步骤。通过工具链操作与原理剖析,指导开发者安全实现系统精简、权限获取及存储扩容,最终完成固件重新打包与刷机验证,适用于追求设备完全控制权的技术爱好者。

ujm56789012的博客 653

VCExcel速度慢问题解决方案的源代码

VCExcel速度慢问题解决方案的源代码,希望对你有用。

【头歌】链栈的基本操作及应用

另外,在算法的开始和结束,栈都应该是空的,所以匹配到最后还要判断栈是否为空,若空,则说明匹配成功,返回1。其中表达式只包含三种括号,花括号{}、中括号[]、圆括号(),即它仅由 (、)、[、]、{、}六个字符组成。预期输出: 栈中元素依次为:12 47 5 8 6 92 45 63 75 38 4 29 弹出的栈顶元素 e=29 栈空否:0(1:空 0:否) 栈顶元素 e=4 栈的长度为11 清空栈后,栈空否:1(1:空 0:否)// 若栈不空,则用e返回S的栈顶元素,并返回OK;

qq_39977056的博客 4358

关于VC操作Excel无法退出进程的问题

网上查了很久都没有个结果,有相同问题倒是不少,都是没有解决的,有的是用结束进程方式解决的。虽然我也没有彻底解决,但是可能可以帮到碰到相同问题的朋友,在线程内的操作excel都没有问题,线程执行完成进程也就退出了,当然在线程内得加上::CoInitialize(NULL),::CoUninitialize()来初始化线程COM库,如果不是线程的话怎么办呢?比如按钮事件内,碰到的...

weixin_34194359的博客 545

VC 打开 Excel 文件后,excel.exe进程无法退出

测试代码:vc6.0 office2000 以下代码需要MFC的支持,而且工程中还要包含EXCEL2000的定义文件:EXCEL9.H,EXCEL9.CPP _Application ExcelApp; Workbooks wbsMyBooks; _Workbook wbMyBook; Worksheets wssMysheet

每天多一分钟学习,生命就多一份精彩 3414

VCEXCEL退出EXCEL进程

VCEXCEL退出EXCEL进程 //释放对象      usedRange.ReleaseDispatch();      range.ReleaseDispatch();      sheet.ReleaseDispatch();      sheets.ReleaseDispatch(); //关闭工作薄对象      book.Close(covOptional,

jimonanhai1的专栏 1967

vc操作Excel保存 和Excel退出

公司给了我一个任务,用excel调用模版生成结帐单并进行打印。我在努力的n天以后终于完成了。现在总结一下:       1.速度问题vcexcel候速度是很慢的,如果一个一个单元格的写,能把你给急死。所以在取和写入excel候,我使用了安全数组,这样能够将对应的数据一次性从文件中出或者是写入。       2.关于屏蔽掉最后“确定改变文件”的对话框,用Book的close方

wuan584974722的专栏 1万+

VC操作excel表格

摘要:使用Microsoft Office所带的控件来实现代码操作excel表格。 操作系统是Microsoft XP,办公套装是Microsoft Office 2003,编程环境是Microsoft Visual Studio 6.0,一切都是Microsoft。我最近要将数据库中的内容查询出来放到excel表格以便打印,所以上网找了这方面的内容,这里主要是抛砖引玉。从思路上来

每天进步一点点... 1万+

使用VC操作Excel表格的源码

下面的代码段是关于使用VC操作Excel表格的的代码,应该对小伙伴们也有用。 if (CoInitialize(NULL) != 0) { AfxMessageBox(“初始化COM支持库失败!”); exit(1); } 假如这个条件不通过就不能运行起程序。在程序的出口处CXXXApp::ExitInstance()函数return语句之前加入下面这句话:CoUninitialize();来释放COM支持库。这样对COM支持库的代码已经完成。下面要从Office的安装目录中找到对VC操作excel文件的

anopheles的博客 896

VC6.0 操作Excel表格

介绍:使用Microsoft Office所带的控件来实现代码操作excel表格,从思路上来看,操作excel表格就是将其打开,然后写入/出数据,然后关闭。 一、           添加COM库支持 首先创建一个程序(一个MFC的单文档程序),在程序的入口处和出口处先作这样两个步骤来支持COM库: 在程序入口处CMyApp:: InitInstance()函数AfxEnableContr

mitesi的专栏 4073

MFC、VC++操作excel后,excel程序进程无法正常退出的非暴力处理方法

1、最low的方式:强制结束进程这种方式简单粗暴,但会存在进程安全问题,及可能引起数据丢失,慎用!!!!2、释放顺序问题Execl相关的变量在关闭和释放的候顺序必须正确。比如,要先使用Close(),后使用ReleaseDispatch。顺序尽量做到先 Save—>Colse—>Release;在Release,我们尽量做到由内到外,Rang—>Sheet—>Sheets—>Book—>Books—>App。

学无止尽,谨言慎行! 2850

vc操作Excel

公司给了我一个任务,用excel调用模版生成结帐单并进行打印。我在努力的n天以后终于完成了。现在总结一下:       1.速度问题vcexcel候速度是很慢的,如果一个一个单元格的写,能把你给急死。所以在取和写入excel候,我使用了安全数组,这样能够将对应的数据一次性从文件中出或者是写入。       2.关于屏蔽掉最后“确定改变文件”的对话框,用Book的close方

前路漫漫的博客 967

电气工程自动化专业个人简历模板

电气自动化怎么写简历呢,来看下这份电气工程自动化专业个人简历模板吧。该文档为电气工程自动化专业个人简历模板,是一份很不错的参考资料,具有较高参考价值,感兴趣的可以下载看看

上一篇: VC读取EXCEL后退出EXCEL进程
下一篇: 关于SafeArray的使用说明
jimonanhai1
博客等级 码龄18年 6粉丝 2原创
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值