博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
delphi excel 对象释放
阅读量:6519 次
发布时间:2019-06-24

本文共 1119 字,大约阅读时间需要 3 分钟。

前几天问过这个问题,很多朋友给了我回答。本以为解决了。但现在新问题又来了。

代码如下:
  ...
  ExcelApp,workbook:   Variant;  
  ...
  ExcelApp:=CreateOleObject( 'Excel.Application ');
  workbook:=CreateOleObject( 'Excel.sheet ');

上次大家给我的代码是:
workbook.close;
ExcelApp.quit;
workbook:=unassigned;
excelapp:=unassigned;

这些代码放在窗口的onclose方法里没问题,当窗口释放后,EXCEL对象也会中内存中清出。但我如果把这些代
码放在其他地方,比如按钮的onclick里,就不行了,点了按钮后,EXCEL对象还是驻留在内存里。

我的程序的功能是把excel表中的数据导入到access里。我的想法是导入完一个excel表后,先把excel对象释放

,然后可以继续选另一个要导入的excel表。我把释放的代码放在导入按钮里。但结果是,导入数据后,excel

对象不能释放。再选其他excel表,再按导入键,就会出错。

请问应该怎样才能通过单击按钮释放excel对象?

 

 

 

解答:

 

      workbook没有释放

其实不用WorBook也行,如下:
Try
  ExcelApp:=   CreateOleObject(   'Excel.Application '   );
  ExcelApp.WorkBooks.Open(YourXlsFileName);//打开Excel文件
  ExcelApp.WorkSheets[1].Activate;//设定第一个Sheet为活动的

  ExcelApp.Cells[i,j].Value:=YourString;//向单元格中写数据

  YourString:=ExcelApp.ActiveSheet.Cells.item[i,j]);   //读取单元格.

  ExcelApp.ActiveSheet.PrintOut;//答应

  ExcelApp.ActiveWorkBook.SaveAs(SavedFileName);//存盘
  ExcelApp.Quit;
  ExcelApp:=UnAssigned;  
Except
  Try   //多用一个Try..Finally是防止在读写单元格过程中出错,退出时可能没有释放Excel,造成内存漏洞
    ExcelApp.ActiveWorkBook.Saved   :=   True;
    ExcelApp.Quit;
  Finally
    ExcelApp:=UnAssigned;
  End;
End;

 

转载地址:http://vsrfo.baihongyu.com/

你可能感兴趣的文章
阿里云中间件推出全新开发者服务
查看>>
56.随机产生的id重复问题
查看>>
一个快速检测系统CPU负载的小程序
查看>>
windows2003单域迁移到2008R2服务器
查看>>
我的友情链接
查看>>
Python自学笔记-logging模块详解
查看>>
Money去哪了- 每日站立会议
查看>>
Python数据结构和算法学习笔记1
查看>>
正则之从dom字符串中提取url
查看>>
大数据——基础概念
查看>>
机器学习温和指南
查看>>
Object 类有哪些方法
查看>>
oracle 将一个表复制到另外一个表里 .
查看>>
jQuery清空标签内容--防止内存泄露
查看>>
关于 HandlerMethodArgumentResolver 类 以及 WebArgumentResolver 类 自定义解析参数
查看>>
比RBAC更好的权限认证方式(Auth类认证)
查看>>
httpd之编译安装详解
查看>>
服务器磁盘采购分析
查看>>
PHP中is_callable()函数的用法详解
查看>>
android动画
查看>>