1. 程式人生 > >C#生成Excel文件後徹底解除占用代碼(來著CSDN)

C#生成Excel文件後徹底解除占用代碼(來著CSDN)

run button spa miss 多個 top epo 網上 hellip

http://bbs.csdn.net/topics/280078428

jy251

LS說KILL進程的朋友們···我說。。。你們真行!!!如果用戶是administrator還行,如果不是怎麽辦??你是沒有權限KILL滴!!!

C# code ?
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();



有一點,在網上你是找不到滴···純屬經驗:

如果你要寫的Excel是多個Sheet的話,那麽你最好寫個函數:
比如 private bool overdue_report_sub(Excel.Worksheet sheet)
將sheet的對象傳進去,在這個函數中進行操作,函數過程只寫Sheet的操作過程,釋放還是放在外面。如果你不這樣做的話,那麽,恭喜你,你還是釋放不掉。但是如果只有一個Sheet操作的話,你就可以不用寫這個函數了,只是在整個函數體中進行創建和釋放。

C#生成Excel文件後徹底解除占用代碼(來著CSDN)