仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 494|回复: 6
打印 上一主题 下一主题

[学习教程] ASP.NET教程之Excel在.Net下驻留内存的办理办法

[复制链接]
活着的死人 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-16 22:48:41 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
有理由相信是能提供更出色的性能。很多平台无法支持复杂的编译器,因此需要二次编译来减少本地编译器的复杂度。当然可能做不到java编译器那么简易。excel|办理  这段工夫在VS2003的WebForm体例下对Excel举行操纵,碰到一个最为头疼的成绩就是对Excel操纵终了后Excel不克不及够一般封闭,体系加入后,Excel老是驻留在内存中。可是这段代码放到WinForm的程序中又没有成绩。在网长进行了查找也没有找到无效可行的举措。经由有数次的实验,终究办理以下:
  本来誊写以下:
<P>  privateExcel.Applicationm_app;
  privateExcel.Workbookm_workbook;
  this.m_app=newExcel.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);
  修正后以下:
<P>  privateExcel.Applicationm_app;
  privateExcel.Workbooksm_workbooks;
  privateExcel.Workbookm_workbook;
  this.m_app=newExcel.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的操纵以下
  修正前以下:
<P>  Excel._Worksheetworksheet1=null;
  worksheet1=(Excel._Worksheet)this.m_workbook.Worksheets.get_Item(sSheetName);
  修正后以下:
  Excel.Sheetssheets=null;
  Excel._Worksheetworksheet1=null;
  sheets=this.m_workbook.Worksheets;
  worksheet1=(Excel._Worksheet)sheets.get_Item(sSheetName);
  发明区分了么?本来Workbooks,Worksheets这两个类没有被实例化就间接利用了,形成该类不克不及够被接纳。终极形成Excel在内存的驻留。
<P>  终极以以下体例开释。  privatevoidReleaseAllRef(Objectobj)
  {
  try
  {
  if(obj!=null)
  {
  while(Marshal.ReleaseComObject(obj)>1);
  }
  }
  finally
  {
  obj=null;
  }
  }
  privatevoidRelease()
  {
  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();
  }语言是不是不是最重要的?
柔情似水 该用户已被删除
沙发
发表于 2015-1-25 16:10:26 | 只看该作者
ASP.Net和ASP的最大区别在于编程思维的转换,而不仅仅在于功能的增强。ASP使用VBS/JS这样的脚本语言混合html来编程,而那些脚本语言属于弱类型、面向结构的编程语言,而非面向对象。
若天明 该用户已被删除
板凳
发表于 2015-2-8 19:52:38 | 只看该作者
ASP.NET可以无缝地与WYSIWYGHTML编辑器和其他编程工具(包括MicrosoftVisualStudio.NET)一起工作。这不仅使得Web开发更加方便,而且还能提供这些工具必须提供的所有优点,包括开发人员可以用来将服务器控件拖放到Web页的GUI和完全集成的调试支持。微软为ASP.net设计了这样一些策略:易于写出结构清晰的代码、代码易于重用和共享、可用编译类语言编写等等,目的是让程序员更容易开发出Web应用,满足计算向Web转移的战略需要。
第二个灵魂 该用户已被删除
地板
发表于 2015-2-26 00:33:42 | 只看该作者
目前在微软的.net战略中新推出的ASP.net借鉴了Java技术的优点,使用CSharp(C#)语言作为ASP.net的推荐语言,同时改进了以前ASP的安全性差等缺点。但是,使用ASP/ASP.net仍有一定的局限性,因为从某种角度来说它们只能在微软的WindowsNT/2000/XP+IIS的服务器平台上良好运行(虽然像ChilliSoft提供了在UNIX/Linux上运行ASP的解决方案.
蒙在股里 该用户已被删除
5#
发表于 2015-3-8 10:52:41 | 只看该作者
是指转换后的Servlet程序代码的行数。这给调试代码带来一定困难。所以,在排除错误时,可以采取分段排除的方法(在可能出错的代码前后输出一些字符串,用字符串是否被输出来确定代码段从哪里开始出错)。
金色的骷髅 该用户已被删除
6#
发表于 2015-3-15 22:19:46 | 只看该作者
如今主流的Web服务器软件主要由IIS或Apache组成。IIS支持ASP且只能运行在Windows平台下,Apache支持PHP,CGI,JSP且可运行于多种平台,虽然Apache是世界使用排名第一的Web服务器平台。
老尸 该用户已被删除
7#
发表于 2015-3-22 16:55:42 | 只看该作者
但是java靠开源打出的一片天地,特别是在微软的垄断下能打开今天的局面还是有它的生命力的。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-11-13 14:54

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表