vc操作excel程序退出的问题
来源:互联网 发布:淘宝直通车可以提现吗 编辑:程序博客网 时间:2024/06/06 01:57
公司给了我一个任务,用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进程的文章其实是不负责任的做法,对于真正的程序员来说是不可能用那些方法的.就好像修炼的人的心魔一样,一旦用了这种方法,以后自己的技术就不会再有进步了
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程序退出的问题
- vc操作excel程序退出的问题
- vc操作Excel保存 和Excel的退出
- VC 读取操作Excel问题
- 通过vc 操作excel时避免重复定义的问题
- VC程序退出----如何退出
- VC操作EXCEL(MFC程序)
- VC操作Excel的方法
- VC操作Excel的方法
- 简单的vc操作excel
- VC对Excel的操作
- vc 退出程序语句
- vc如何退出程序
- vc如何退出程序
- vc如何退出程序
- VC操作Excel文件保存问题
- VC操作Excel文件保存问题
- VC操作Excel文件保存问题
- sys_connect_by_path的使用
- 使用sys.dm_io_virtual_file_stats了解你的数据库IO
- py2exe打包一个文件
- c++ 前置声明不能随便用 会引起类型不完全的错误
- new在实例化类中的作用
- vc操作excel程序退出的问题
- 数据库硬件选择
- red hat linux内核升级后rpm的问题
- Oracle的Package介绍
- 在Ubuntu上下载、编译和安装Android最新源代码
- Oracle用Start with...Connect By子句递归查询
- hdu 1829 A Bug's Life
- sysprocess中看到的HostName不一定是真正的HostName
- 开源网络应用框架 Rails