锘??xml version="1.0" encoding="utf-8" standalone="yes"?>
]]>
銆銆1錛岃浣忚璁頒綇鐨勶紝蹇樿璇ュ繕璁扮殑銆傛敼鍙樿兘鏀瑰彉鐨勶紝鎺ュ彈涓嶈兘鏀瑰彉鐨?/p>
銆銆2錛岃兘鍐插埛涓鍒囩殑闄や簡鐪兼唱錛屽氨鏄椂闂達紝浠ユ椂闂存潵鎺ㄧЩ鎰熸儏錛屾椂闂磋秺闀匡紝鍐茬獊瓚婃貳錛屼豢浣涗笉鏂█閲婄殑鑼?/p>
銆銆3錛屾ㄨ█鏄笂澶╁緱鑷充漢綾繪渶澶х殑渚涚墿錛屼篃鏄漢綾葷シ鍛婁腑鏈鐪熻瘹鐨勯儴鍒?/p>
銆銆4錛屾櫤鎱х殑浠d環(huán)鏄煕鐩俱傝繖鏄漢鐢熷浜虹敓瑙傚紑鐨勭帺絎戙?/p>
銆銆5錛屼笘涓婄殑濮戝鎬諱互涓鴻嚜宸辨槸楠勫偛鐨勫叕涓?闄や簡灝戞暟鏋佷笐鍜屽皯鏁版瀬鑱槑鐨勫濞樹緥澶?
銆銆6錛屽鏋滄晫浜鴻浣犵敓姘旓紝閭h鏄庝綘榪樻病鏈夎儨浠栫殑鎶婃彙
銆銆7錛屽鏋滄湅鍙嬭浣犵敓姘旓紝閭h鏄庝綘浠嶇劧鍦ㄦ剰浠栫殑鍙嬫儏
銆銆8錛屼護鐙愬啿璇粹滄湁浜涗簨鎯呮湰韜垜浠棤娉曟帶鍒訛紝鍙ソ鎺у埗鑷繁銆傗?/p>
銆銆9錛屾垜涓嶇煡閬撴垜鐜板湪鍋氱殑鍝簺鏄鐨勶紝閭d簺鏄敊鐨勶紝鑰屽綋鎴戠粓浜庤佹鐨勬椂鍊欐垜鎵嶇煡閬撹繖浜涖傛墍浠ユ垜鐜板湪鎵鑳藉仛鐨勫氨鏄敖鍔涘仛濂芥瘡涓浠朵簨錛岀劧鍚庣瓑寰呯潃鑰佹銆?/p>
銆銆10錛屼篃璁告湁浜涗漢寰堝彲鎭訛紝鏈変簺浜哄緢鍗戦剻銆傝屽綋鎴戣韜負浠栨兂璞$殑鏃跺欙紝鎴戞墠鐭ラ亾錛氫粬姣旀垜榪樺彲鎬溿傛墍浠ヨ鍘熻皡鎵鏈変綘瑙佽繃鐨勪漢錛屽ソ浜烘垨鑰呭潖浜?/p>
銆銆11錛岄奔瀵規(guī)按璇翠綘鐪嬩笉鍒版垜鐨勭溂娉紝鍥犱負鎴戝湪姘撮噷錛庢按璇存垜鑳芥劅瑙夊埌浣犵殑鐪兼唱錛屽洜涓轟綘鍦ㄦ垜蹇冮噷銆?/p>
銆銆12錛屽揩涔愯鏈夋?zhèn)蹭激浣滈櫔锛岄洦杩囧簲璇鏈夊ぉ鏅淬傚鏋滈洦鍚庤繕鏄洦錛屽鏋滃咖浼や箣鍚庤繕鏄咖浼わ紟璇瘋鎴戜滑浠庡闈㈠榪欑鍒箣鍚庣殑紱誨埆銆?寰瑧鍦板幓瀵繪壘涓涓笉鍙兘鍑虹幇鐨勪綘錛?/p>
銆銆13錛屾浜℃暀浼氫漢涓鍒囷紝濡傚悓鑰冭瘯涔嬪悗鍏竷鐨勭粨鏋溾曗曡櫧鐒舵亶鐒跺ぇ鎮(zhèn)燂紝浣嗕負鏃舵櫄鐭錛?/p>
銆銆14錛屼綘鍑虹敓鐨勬椂鍊欙紝浣犲摥鐫錛屽懆鍥寸殑浜虹瑧鐫錛涗綘閫濆幓鐨勬椂鍊欙紝浣犵瑧鐫錛岃屽懆鍥寸殑浜哄湪鍝紒涓鍒囬兘鏄疆鍥?!!! 鎴戜滑閮藉湪杞洖涓?!!
銆銆15錛岀敺浜哄湪緇撳鍓嶈寰楅傚悎鑷繁鐨勫コ浜哄緢灝戯紝緇撳鍚庤寰楅傚悎鑷繁鐨勫コ浜哄緢澶?!
Range 錛?null錛?br />myBook = null;
myExcel = null;
鎴戣瘯榪囷紝娌℃湁鎴愬姛
2銆傚叧闂繘紼?br />C#鍜孉sp.net涓媏xcel榪涚▼涓琚墦寮,鏈夋椂灝辨棤娉曞叧闂?聽聽 灝ゅ叾鏄痺ebsite.瀵瑰叧闂榪涚▼鏈夎繃GC銆乺elease絳夋柟娉曪紝浣嗚繖浜涙柟娉曞茍涓嶆槸鍦ㄦ墍鏈夋儏鍐典笅鍧囬傜敤銆偮?浜庢槸鎻愬嚭浜唊ill聽聽 process鐨勬柟娉?聽聽 鐩墠鎴戣榪囩殑鏂規(guī)硶澶氭槸鐢ㄨ繘紼嬪垱寤烘椂闂寸瓫閫塭xcel.exe榪涚▼,聽聽 鐒跺悗kill 銆偮犅犅犅?榪欐牱鐨勬柟娉曟槸涓嶇簿紜殑,聽聽 涔熸槸涓嶅畨鍏ㄧ殑,聽聽 閫氳繃瀵圭綉涓婁竴浜涘叧浜嶢pi榪愮敤鏂囩珷鐨勯槄璇?聽聽 鎴戞壘鍒頒簡鏇翠負鐩存帴綺劇‘鎵懼埌榪欎釜process騫秌ill鐨勬柟娉曪紝浠ヤ笅灝辨槸浠g爜聽聽聽聽聽聽聽聽
using聽聽 System.Runtime.InteropServices;聽聽
聽聽聽聽聽
聽 [DllImport("User32.dll",聽聽 CharSet聽聽 =聽聽 CharSet.Auto)]聽聽
聽 public聽聽 static聽聽 extern聽聽 int聽聽 GetWindowThreadProcessId(IntPtr聽聽 hwnd,聽聽 out聽聽 int聽聽 ID);聽聽
聽 protected聽聽 void聽聽 Button1_Click(object聽聽 sender,聽聽 EventArgs聽聽 e)聽聽
聽 {聽聽
聽聽聽聽聽 Excel.ApplicationClass聽聽 excel聽聽 =聽聽 new聽聽 Microsoft.Office.Interop.Excel.ApplicationClass();聽聽
聽聽聽聽聽 excel.Workbooks.Open("d:\aaa.xls",聽聽 Type.Missing,聽聽 Type.Missing,聽聽 Type.Missing,聽聽 Type.Missing,聽聽 Type.Missing,聽聽 Type.Missing,聽聽 Type.Missing,聽聽 Type.Missing,聽聽 Type.Missing,聽聽 Type.Missing,聽聽 Type.Missing,聽聽 Type.Missing,聽聽 Type.Missing,聽聽 Type.Missing);聽聽
聽聽聽聽聽 IntPtr聽聽 t聽聽 =聽聽 new聽聽 IntPtr(excel.Hwnd);聽聽
聽聽聽聽聽 int聽聽 k聽聽 =聽聽 0;聽聽
聽聽聽聽聽 GetWindowThreadProcessId(t,聽聽 out聽聽 k);聽聽
聽聽聽聽聽 System.Diagnostics.Process聽聽 p聽聽 =聽聽 System.Diagnostics.Process.GetProcessById(k);聽聽
聽聽聽聽聽 p.Kill();聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽
聽聽 }
浠ヤ笂浠g爜鐧懼垎鐧炬垚鍔熺殑鍏抽棴excel.exe榪涚▼
鎴戠殑鍋氭硶鏄粨鍚堜袱鑰咃紝鍏堥噴鏀捐祫婧愶紝鐒跺悗鍏抽棴榪涚▼銆?br />鍚屾椂緗戜笂璇撮伩鍏嶄嬌鐢℅C.Collect 鏂規(guī)硶 (),鍥犱負浼氬鑷存暣涓猚lr榪涜gc錛屽獎鍝嶄綘鐨勬ц兘.鎵浠ユ垜涔熸病鏈夎皟鐢℅C.Collect
聽聽聽 public static void test(){
聽聽try{
聽聽聽String targetfile = "c:/1.xls";
聽聽聽聽聽 OutputStream os = new FileOutputStream(targetfile);
聽聽聽聽聽 jxl.write.WritableWorkbook wwb = Workbook.createWorkbook(os);
聽聽聽聽聽 jxl.write.WritableSheet ws = wwb.createSheet("Test Sheet 1", 0);
聽聽聽聽聽 for(int i=0;i<50;i++){
聽聽聽聽聽 聽if(i!=0){
聽聽聽聽聽 聽聽InputStream in = new FileInputStream(targetfile);
聽聽聽聽聽 聽聽Workbook wb = Workbook.getWorkbook(in);
聽聽聽聽聽 聽聽os = new FileOutputStream(targetfile);
聽聽聽聽聽 聽聽wwb = Workbook.createWorkbook(os,wb);
聽聽聽聽聽 聽聽ws = wwb.getSheet(0);
聽聽聽聽聽 聽聽wb.close();聽聽聽聽聽 聽聽聽聽
聽聽聽聽聽 聽聽in.close();
聽聽聽聽聽 聽}
聽聽聽聽聽 聽for(int j=0;j<1000;j++){
聽聽聽聽聽 聽聽Label l = new Label(0,j+i*1000,"嫻嬭瘯");
聽聽聽聽聽 聽聽ws.addCell(l);
聽聽聽聽聽 聽}
聽聽聽聽聽 聽try{
聽聽聽聽聽 聽wwb.write();
聽聽聽聽聽 聽wwb.close();
聽聽聽聽聽 聽os.flush();
聽聽聽聽聽 聽os.close();
聽聽聽聽聽 聽}catch(Exception e){
聽聽聽聽聽聽 聽System.out.println("閿欒2錛?);
聽聽聽聽聽聽聽 e.printStackTrace();
聽聽聽聽聽 聽}
聽聽聽聽聽 }
聽聽聽聽 }catch(Exception e){
聽聽聽聽 聽System.out.println("閿欒錛?);
聽聽聽聽聽 e.printStackTrace();
聽聽聽聽 }
聽}
浠ヤ笂鏄垜鍐欑殑涓涓祴璇曠被錛屽啓5W鏉¤褰曠幇鍦ㄦ槸娌℃湁闂錛屽厛瀛樼‖鐩?鐒跺悗浠庣‖鐩樿幏鍙栨祦錛屾渶鍚庡彲浠ュ啓鍒皉esponse鐨刼utputStream涓?涓嶈繃鎰熻鑷繁鐨勪唬鐮佽川閲忎笉鏄緢濂斤紝嬈㈣繋楂樻墜澶氬鎸囨暀銆傚彲浠ヤ簰鐩鎬氦嫻佹濇兂銆?/p>