2013-12-22 143 views
0

每次我运行这个我得到新的进程EXCEL .EXE * 32。从Excel获取信息后如何关闭它?关闭EXCEL .EXE * 32进程

 FileStream fileStream; 
     string temp = "D:\\Temp"; 
     string file = Path.GetFileNameWithoutExtension(Path.GetRandomFileName()); 
     string path = Path.Combine(temp, file + ".xslx"); 
     using (fileStream = new FileStream(path, FileMode.Create, FileAccess.Write)) 
     { 
      memoryStream.WriteTo(fileStream); 
     } 

     Excel.Application excelApplication; 
     Excel.Workbook excelWorkbook; 
     Excel.Worksheet excelWorkSheet; 
     Excel.Range excelRange; 
     Excel.Range excelCheckRange; 
     DataTable dataTable = null; 

     try 
     { 
      excelApplication = new Excel.Application(); 
      excelWorkbook = excelApplication.Workbooks.Open(path, ReadOnly: true); 
      excelWorkSheet = (Excel.Worksheet)excelWorkbook.Sheets[1]; 
     } 
     catch(Exception ex) 
     { 
      //TO DO 
     } 

回答

5

在您的工作结束后,你应该使用

if (excelWorkbook != null)  
    excelWorkbook.Close(); 
if(excelApplication != null) 
    excelApplication.Quit(); 
+0

This Works,thank you! – Faruk

0
excelApplication = new Excel.Application(); 

这的确会启动Excel中。

要关闭该过程,您需要确保没有对Excel应用程序对象或其任何其他部分的引用(例如,a Range)。然后GC将最终清除它。您可以使用Application.Quit来加快速度(但请注意文档中关于未保存的工作簿的说明)。

+0

只需注意OP以只读模式打开工作簿,所以不应该存在未保存工作簿的问题:) – Marco