Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在C中关闭Excel窗口后关闭Excel应用程序进程#_C#_Excel_Process_Export To Excel_Excel Interop - Fatal编程技术网

C# 在C中关闭Excel窗口后关闭Excel应用程序进程#

C# 在C中关闭Excel窗口后关闭Excel应用程序进程#,c#,excel,process,export-to-excel,excel-interop,C#,Excel,Process,Export To Excel,Excel Interop,对于报告,我创建了一个excel应用程序,将一些数据导出到其中,并使其对用户可见 public void MyMethod() { Excel.Application excelApp = new Excel.Application(); object misValue = System.Reflection.Missing.Value; Excel.Workbook workBook = excelApp.Workbooks.Add(misValue); Excel.W

对于报告,我创建了一个excel应用程序,将一些数据导出到其中,并使其对用户可见

public void MyMethod()
{
   Excel.Application excelApp = new Excel.Application();
   object misValue = System.Reflection.Missing.Value;
   Excel.Workbook workBook = excelApp.Workbooks.Add(misValue);
   Excel.Worksheet workSheet = (Excel.Worksheet)workBook.Worksheets.get_Item(1);
   Excel.Range range;

   //my export code here..



  //at last excel application is shown for user
  excelApp.Visible = true;
}
当用户单击“关闭”按钮时,会出现一个对话框,其中包含[“保存”、“不保存”和“取消”]。在任何情况下(保存或不保存),窗口都会关闭,但EXCEL.EXE进程就像这个问题中的图片一样,因为我还没有关闭它

如何定义用户是否关闭已查看的excel窗口?如果是,那么我将退出我创建的excel应用程序


编辑:我需要类似“退出事件”的内容。若要定义用户是否关闭窗口,请退出应用程序。

您可能正在使用未正确释放的COM对象

Worksheets sheets = excelApp.Worksheets;
Worksheet sheet = sheets.Open(...);

Marshal.ReleaseComObject(sheets);
Marshal.ReleaseComObject(sheet);

对不起,我误解了这个问题

旧版: 检查窗口是否存在

[DllImport("user32.dll", CharSet=CharSet.Auto, ExactSpelling=true)]
...
while(true)
{
    IntPtr hWnd = (IntPtr)FindWindow(windowName, null);
    public static extern bool IsWindow(IntPtr hWnd);
}
App.Close()

为什么不能使用
excellApp.Quit()
?我什么时候使用?如果我使用它,文件将关闭。我想在用户关闭文件后调用它。windowName是否为excel的“Book1”?(默认窗口标题)或Excel确保您正在释放正在创建的所有COM对象。还要确保将它们全部分配给变量,以便可以释放它们。