我做項目對Excel進程處理問題

從我進公司開始做項目起,就少不了對Excel文件的處理,幾乎都要用到對Excel文件的導入導出,第一個項目用到的導出是用DTS寫的,因爲是微軟自己的導出工具所以就不存在很多人碰見的Excel進程問題,但是我第二個項目所有報表導出都要導成Excel文件,那麽就發現存在大家常常碰見的現象就是進程中有很多的Excel.EXE,並且時常導致系統無法繼續生成Excel文件問題。

通過網上查閱一些資料,加上自己對各種方法的試驗,寫下我對Excel進程處理的一些經驗(爲什麽是經驗而不是代碼呢?)

1. 不要太在意進程中有一些Excel.EXE,有時候並不影響生成Excel文件,既然這樣又何必太在意呢。

2. 首先操作系統我推薦用windows2003 而不是windows20000 感覺2003做了些處理,我的項目在2003跑的時候從沒出現過不能生成Excel文件的問題,而2000就經常接到客戶的投訴。

3. 操作系統安裝Office時,我裝的是Office2003版本,記住要選擇應用程序的高級自定義。然後最好把每個節點下面的.net可編程性支持選擇安裝。

4. 你項目中生成Excel文件的代碼一定不要有邏輯BUG,就是那種導致某個Excel對象出現異常,進而導致某次Excel文件生成失敗,代碼最後按照網上通常說的對用到的Excel對象逐個釋放。當然代碼最後加個GC.collect() 也可以。

5. 一般來說我的項目就沒出現過Excel文件生成不了的問題,不過我還是怕萬一,所以就寫了個windows服務程序,定時掃描進程,並殺掉進程開始時間距離當前時間5分鍾前的Excel進程,這樣基本不會誤殺正在處理的Excel進程。

6. 我在web項目中對Excel對象僅僅是釋放,沒有用到Process.Kill() 這個方法,因爲我目前看法是asp.net用戶的權限不夠,無法使用上面的方法,在winform下面到可以使用該方法。

上面是我個人總結的經驗,拿出來和大家分享一下,另外我的博客文章都是原創的,如果轉載請注明出處:http://www.cnblogs.com/hustsay23/archive/2008/10/19/1314389.html

如何關掉Excel進程
由于Asp.net沒有關掉進程的權限,所以只能把下面的函數放在Windows程序中和直接放在一個服務中執行private void KillProcess(string processName){ System.Diagnostics.Process myproc= new System.Diagnostics.Proc...查看完整版>>如何關掉Excel進程
 
windows系統正常系統進程項目錄大全-操作系統
  不是很熟悉系統進程的同學們在打開項目管理器進程管理的時候,一定會很頭疼,因爲進程管理中大大小小的進程,到底哪個是正常的,哪個又可能是病毒程序或者不必需的呢?看了下面的windows xp 系統進程目錄你就知...查看完整版>>windows系統正常系統進程項目錄大全-操作系統
 
工程項目管理規範:項目進程控制
  7.1 一般規定  7.1.1 項目進度控制應以實現施工合同約定的竣工日期力最終目標。  7.1.2 項目進度控制總目標應進行分解。可按單位工程分解爲交工分目標,可按承包的專業或施工階段分解爲完工分目標,亦可按年...查看完整版>>工程項目管理規範:項目進程控制
 
JavaScript打開EXCEL後,最後釋放進程的方法
var idTmr = ""; function Cleanup() { window.clearInterval(idTmr); CollectGarbage(); } function AutomateExcel() { var oXL = new ActiveXObject("Excel.Application"); oXL.DisplayAlerts = false var oWB = o...查看完整版>>JavaScript打開EXCEL後,最後釋放進程的方法
 
在.NET中殺死Word,Excel等進程
下面的方法可以直接調用private void KillProcess(string processName){System.Diagnostics.Process myproc= new System.Diagnostics.Process();//得到所有打開的進程 try{ foreach (Process thisproc in Proc...查看完整版>>在.NET中殺死Word,Excel等進程
 
excel宏的編寫加速和簡化開發進程
在MVC分層體系機構的論述中,提到了可以用excel來加速和簡化開發。例如對用戶標來說excel表如下:項目名稱TYTK制作人G_Y時間2005-07-24TABLE名 EMPLOYEE_INFO功能說明 實體類名   備注 編號字段名稱中文名稱 主...查看完整版>>excel宏的編寫加速和簡化開發進程
 
excel宏的編寫加速和簡化開發進程
在MVC分層體系機構的論述中,提到了可以用excel來加速和簡化開發。例如對用戶標來說excel表如下:項目名稱TYTK制作人G_Y時間2005-07-24TABLE名 EMPLOYEE_INFO功能說明 實體類名   備注 編號字段名稱中文名稱 主...查看完整版>>excel宏的編寫加速和簡化開發進程
 
.net中清除EXCEL進程最有效的方法
最近用C#寫winform,將EXCEL文件中的數據寫入數據庫中,將DataGrid中的數據導出爲EXCEL格式。最後發現EXCEL內存泄漏,在應用程序不退出的情況下,總是有一個EXCEL進程不能清除!在網上找了許多答案,都是無用的答案!...查看完整版>>.net中清除EXCEL進程最有效的方法
 
ASP.NET控制EXCEL,完全結束進程
Excel.Application ThisApp = new Excel.ApplicationClass(); Excel.Workbooks ThisWbs = ThisApp.Workbooks; Excel.Workbook ThisWb = ThisWbs.Open("G:/demo.xls",Missing.Value,Missing.Value,Miss...查看完整版>>ASP.NET控制EXCEL,完全結束進程
 
 
回到王朝網路移動版首頁