问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

Excel在.Net下驻留内存的解决方法

发布网友 发布时间:2022-04-30 04:07

我来回答

1个回答

热心网友 时间:2023-10-11 08:42

Excel在.Net下驻留内存的解决方法

这段时间在VS 2003 的WebForm 方式下对Excel 进行操作,遇到一个最为头疼的问题就是对Excel操作完毕后Excel不能够正常关闭,系统退出后,Excel总是驻留在内存中。但是这段代码放到WinForm的程序中又没有问题。在网上进行了查找也没有找到有效可行的办法。经过无数次的尝试,终于解决如下:
  原来书写如下:
以下是引用片段:
  private Excel.Application m_app;
  private Excel.Workbook m_workbook;
  this.m_app = new Excel.ApplicationClass();
  this.m_app.DisplayAlerts = false;
  this.m_workbook = this.m_app.Workbooks.Open(sFilePath, Missing.Value,
  Missing.Value, Missing.Value, Missing.Value,
  Missing.Value, Missing.Value, Missing.Value,
  Missing.Value, Missing.Value, Missing.Value,
  Missing.Value, Missing.Value, Missing.Value,
  Missing.Value );
  修改后如下:
以下是引用片段:
  private Excel.Application m_app;
  private Excel.Workbooks m_workbooks;
  private Excel.Workbook m_workbook;
  this.m_app = new Excel.ApplicationClass();
  this.m_app.DisplayAlerts = false;
  m_workbooks = this.m_app.Workbooks;
  this.m_workbook = this.m_workbooks.Open(sFilePath, Missing.Value,
  Missing.Value, Missing.Value, Missing.Value,
  Missing.Value, Missing.Value, Missing.Value,
  Missing.Value, Missing.Value, Missing.Value,
  Missing.Value, Missing.Value, Missing.Value,
  Missing.Value );
  同样对Sheet的操作如下
  修改前如下:
以下是引用片段:
  Excel._Worksheet worksheet1 = null;
  worksheet1 = (Excel._Worksheet) this.m_workbook.Worksheets.get_Item(sSheetName);
  修改后如下:
  Excel.Sheets sheets = null ;
  Excel._Worksheet worksheet1 = null;
  sheets = this.m_workbook.Worksheets;
  worksheet1 = (Excel._Worksheet) sheets.get_Item(sSheetName);
  发现区别了么?原来Workbooks,Worksheets这两个类没有被实例化就直接使用了,造成该类不能够被回收。最终造成Excel在内存的驻留。
  最终以如下方式释放。
以下是引用片段:
  private void ReleaseAllRef(Object obj)
  {
  try
  {
  if (obj != null )
  {
  while (Marshal.ReleaseComObject(obj) > 1);
  }
  }
  finally
  {
  obj = null;
  }
  }
  private void Release()
  {
  if (m_app != null )
  {
  m_app.Quit() ;
  }
  ReleaseAllRef(m_workbook) ;
  m_workbook = null ;
  ReleaseAllRef(m_workbooks) ;
  m_workbooks = null ;
  ReleaseAllRef(m_app) ;
  m_app = null ;
  System.GC.Collect() ;
  }
c#.net中怎么关闭excel进程

楼主,建议百度下C#调用excel文件,其实跟其他遇到读写excel文件一样,打开了就必须关闭退出,有始有终,进程自然就会退出~~~,往往再调试调用excel文件的代码时,中途退出调试会造成很多excel进程未关闭~~~···

如何在vb.net中将一个已存在的excel文件保存在资源文件中 然后在将其...

2、Fundamental frequency表示基频的意思,但是我该选多大呢?怎么选?Fundamental (60Hz)=0.0471,这又是什么意思?

.NET里面引用问题!

你说生成是指编译吧?你指添加这个几个是不够的,还需要添加Excel自带的一个DLL,我记得叫 Excel.dll

.net 导出到Excel 超出Excel最大数据量怎么办

先判断GridView的记录总数,如超过,则分多次导出,未超出,一次导出。实现过程中,要采取生成副表的方法。

在.NET Core(C#)中使用EPPlus.Core导出Excel文档

在.NET Core(C#)中使用EPPlus.Core导出Excel文档,首先需要完成安装步骤。直接通过NuGet进行安装,操作简便快捷。EPPlus.Core提供多种方法进行Excel文档导出,本文将聚焦于最为简洁且代码量最小的实现方式。这一方法仅需完成以下步骤:定义一个实体类,以承载所需数据。举个例子,假设我们定义了一个名为"...

我用visual C#.NET打开一个excel,它显示为可读文件,如何使打开的文件为...

我也正在做这个, 下面是我写的导入方法,传入路径,返回dataset ,已经实现。希望对你有帮助。public DataSet ImportExcel(string fileName){ //判断是否安装EXCEL Microsoft.Office.Interop.Excel.Application xlApp = new Microsoft.Office.Interop.Excel.ApplicationClass();if (xlApp == null){ Page...

VB.net 设置EXCEL文件的格式,执行速度太慢

建一个文件,把格式都搞好,然后导出时用 workbooks.add(path)再填写数据,这样格式现成的了,还有一个方法,录个宏,格式刷,挡刷的代码试试.

EXCEL打不开,提示0x65039e14 指令引用的 0x0206bo4c 内存。该内存不能...

for %1 in (%windir%\system32\*.dll) do regsvr32.exe /s %1 然后 回车。然后让他运行完,应该就可能解决。4 最近电脑中毒、安装了不稳定的软件、等,建议全盘杀毒,卸了那个引发问题的软件,重新安装其他 版本,就可能解决. 再不行,重新装过系统就ok.5 电脑机箱里面内存条进灰尘,拆开...

你好。你用什么方法解决掉vb运行后进程里仍有excel

需要编写代码删除excel进程,如果是vb.net,可调用如下过程 Public Sub EraseExcel()Dim pTemp As System.Diagnostics.Process()pTemp = System.Diagnostics.Process.GetProcesses()Dim pTempProcess As System.Diagnostics.Process For Each pTempProcess In pTemp Dim sProcessName As String = pTempProcess....

excel打开时显示“0x30331d24”指令引用的“0x00005022”内存,该内存...

内存不能为 read 问题的简单解决办法 一、硬件的可能性是比较小的,如果是硬件,那就应该是内存条跟主机不兼容的问题导致的 如果能排除硬件上的原因(内存条不兼容,更换内存。内存条松动或积累灰尘,重新拔插并清理灰尘)往下看:二、系统或其它软件引起的,可用下述方法处理:系统本身有问题,及时安装官方...

Linux内存驻留 excel内存不够 excel文件内存不足 excel内存太大 excel打开内存不足 excel显示内存不足怎么办 excel老是提示内存不足 Excel打开文件显示内存不足 excel计算内存不足
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
to B和to C是什么意思?它们有什么区别? To B和To C,你真的知道它们之间的区别么? 听歌一小时能赚钱吗? 听歌一定能赚钱吗? 怎么在网上做海报?怎么做海报电子版 北京哪个医院体检便宜 乌兰浩特盛京医院是公立还是私立,会不会存在隐形消费?想做人流,不知道... 用医保卡买药,结果收费划卡的多收了300元,请问这属于什么行为呀 重庆术妍整形,医生技术如何?到了医院还有其他隐形消费吗? 网上找的人流医院隐形消费太多,感觉被骗,怎么办 net和excel交互用到哪些技术? xwilngs不会关闭excel后台进程? vivo x6的持久亮屏怎么设置? 请问dataGridView中的图片怎么导到excel表格中?紧急寻求高手帮忙。 js里如何把数据导出到excel里 C# windows 应用程序将datagridview 中的数据导出到excel 的代码 webform 可以直接修改excel内容吗,比如在第一行插入一行空白行 在VS2008的webform中实现多个excel文件同时导入到sql2008数据库中,不是多个工作表是多个文件!谢谢 asp.net webform 如何将excel中的内容快速批量的全部导入数据库里表中... 在做数据导出到excel时(c#),在本机上能导出表格,但是移到服务器上就没有反应? webform导出excel怎么创建sheet 最高额抵押担保债权确定的情形? 最高额抵押权担保债权范围是什么 最高额抵押担保的债权是本金还是包括利息呢 最高额抵押权所担保的债权范围,不包括哪些债权 最高额抵押担保的债务包括什么 最高额抵押权所担保债权确定有哪些事由 soul里面我评论的瞬间被瞬间主删除了,别人都看不到了,为什么我自己还能看到? 《最终幻想15》莫古力护符入手方法一览 怎么获得莫古力护符 最终幻想15飞王宫墓地旁上锁门是什么 解锁方法介绍 ExtJs如何与soaOffice集成起来,soaOffice不能再firefox上打开么 C#+Access 使用app.config连接数据库后不能插入和更新数据 1.介绍三种以上数据分析软件的特点 2.Excel中函数计算的特点。 access在使用窗体向导时弹出frui_frmmain窗口。 是什么地方设置错了吗... 如何在asp.net中实现票据的打印 如何将水晶报表 转换 ssrs 步步高x3t手机怎么微信截图就出现页面停止? 微信公众号答题结束后退出后忘了截图怎么办 长虹空调遥控器死机了,我按了复位銉和清零键,结果什么也不显示了,请问如何恢复正常 长虹空调遥控器KK10A是怎么复位的 机子打开是 “空气清新‘”就是 调... xml数据如何整合到html中 html中怎么使用xml文档中的数据 HTML中不能直接使用XML标签,那怎么调用XML呢? 带html标记的内容有办法添加到XML文件吗? 手机团购软件:大众点评和美团团购哪个好? 如何在HTML中显示XML的标签 XML里含有HTML标记时应该怎么处理? 手机上网定团购饭店、宾馆、机票是什么网 在html 页面中 显示xml中的文字 XML和HTML分别指什么!有什么区别?