C#生成Excel文件後徹底解除占用代碼(來著CSDN)
阿新 • • 發佈:2017-07-10
run button spa miss 多個 top epo 網上 hellip
如果你要寫的Excel是多個Sheet的話,那麽你最好寫個函數:
比如 private bool overdue_report_sub(Excel.Worksheet sheet)
將sheet的對象傳進去,在這個函數中進行操作,函數過程只寫Sheet的操作過程,釋放還是放在外面。如果你不這樣做的話,那麽,恭喜你,你還是釋放不掉。但是如果只有一個Sheet操作的話,你就可以不用寫這個函數了,只是在整個函數體中進行創建和釋放。
http://bbs.csdn.net/topics/280078428
jy251
LS說KILL進程的朋友們···我說。。。你們真行!!!如果用戶是administrator還行,如果不是怎麽辦??你是沒有權限KILL滴!!!
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
object objmissing = System.Reflection.Missing.Value;
Excel.ApplicationClass application = new ApplicationClass();
Excel.Workbook book = application.Workbooks.Add(objmissing);
Excel.Worksheet sheet = (Excel.Worksheet)book.Worksheets.Add(objmissing,objmissing,objmissing,objmissing);
//操作過程 ^&%&×&……&%&&……
//釋放
sheet.SaveAs(path,objmissing,objmissing,objmissing,objmissing,objmissing,objmissing,objmissing,objmissing); System.Runtime.InteropServices.Marshal.ReleaseComObject(( object )sheet);
System.Runtime.InteropServices.Marshal.ReleaseComObject(( object )book);
application.Quit();
System.Runtime.InteropServices.Marshal.ReleaseComObject(( object )application);
System.GC.Collect();
|
有一點,在網上你是找不到滴···純屬經驗:
比如 private bool overdue_report_sub(Excel.Worksheet sheet)
將sheet的對象傳進去,在這個函數中進行操作,函數過程只寫Sheet的操作過程,釋放還是放在外面。如果你不這樣做的話,那麽,恭喜你,你還是釋放不掉。但是如果只有一個Sheet操作的話,你就可以不用寫這個函數了,只是在整個函數體中進行創建和釋放。
C#生成Excel文件後徹底解除占用代碼(來著CSDN)