ASP.NET教程之Excel在.Net下驻留内存的办理办法
有理由相信是能提供更出色的性能。很多平台无法支持复杂的编译器,因此需要二次编译来减少本地编译器的复杂度。当然可能做不到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();
}语言是不是不是最重要的? ASP.Net和ASP的最大区别在于编程思维的转换,而不仅仅在于功能的增强。ASP使用VBS/JS这样的脚本语言混合html来编程,而那些脚本语言属于弱类型、面向结构的编程语言,而非面向对象。 ASP.NET可以无缝地与WYSIWYGHTML编辑器和其他编程工具(包括MicrosoftVisualStudio.NET)一起工作。这不仅使得Web开发更加方便,而且还能提供这些工具必须提供的所有优点,包括开发人员可以用来将服务器控件拖放到Web页的GUI和完全集成的调试支持。微软为ASP.net设计了这样一些策略:易于写出结构清晰的代码、代码易于重用和共享、可用编译类语言编写等等,目的是让程序员更容易开发出Web应用,满足计算向Web转移的战略需要。 目前在微软的.net战略中新推出的ASP.net借鉴了Java技术的优点,使用CSharp(C#)语言作为ASP.net的推荐语言,同时改进了以前ASP的安全性差等缺点。但是,使用ASP/ASP.net仍有一定的局限性,因为从某种角度来说它们只能在微软的WindowsNT/2000/XP+IIS的服务器平台上良好运行(虽然像ChilliSoft提供了在UNIX/Linux上运行ASP的解决方案. 是指转换后的Servlet程序代码的行数。这给调试代码带来一定困难。所以,在排除错误时,可以采取分段排除的方法(在可能出错的代码前后输出一些字符串,用字符串是否被输出来确定代码段从哪里开始出错)。 如今主流的Web服务器软件主要由IIS或Apache组成。IIS支持ASP且只能运行在Windows平台下,Apache支持PHP,CGI,JSP且可运行于多种平台,虽然Apache是世界使用排名第一的Web服务器平台。 但是java靠开源打出的一片天地,特别是在微软的垄断下能打开今天的局面还是有它的生命力的。
页:
[1]