我正在用C#编写一个应用程序,它打开一个用于读/写操作的Excel模板文件。我想当用户关闭应用程序时,excel应用程序进程已经关闭,不保存excel文件。在多次运行应用程序后,请查看我的任务管理器。
我使用以下代码打开excel文件:
public Excel.Application excelApp = new Excel.Application();
public Excel.Workbook excelBook;
excelBook = excelApp.Workbooks.Add(@"C:/pape.xltx");
对于数据访问,我使用以下代码:
Excel.Worksheet excelSheet = (Worksheet)(excelBook.Worksheets[1]);
excelSheet.DisplayRightToLeft = true;
Range rng;
rng = excelSheet.get_Range("C2");
rng.Value2 = txtName.Text;
我在stackoverflow中看到了类似的问题,如this question和this,以及测试答案,但它不起作用。
发布于 2013-07-22 07:03:42
试试这个:
excelBook.Close(0);
excelApp.Quit();
关闭工作簿时,您有三个可选参数:
Workbook.close SaveChanges, filename, routeworkbook
Workbook.Close(false)
,或者如果你正在做后期绑定,有时使用zero Workbook.Close(0)
会更容易,这就是我在自动关闭工作簿时所做的。
我还查找了它的文档,并在这里找到了它:Excel Workbook Close
谢谢,
发布于 2013-11-26 17:23:46
xlBook.Save();
xlBook.Close(true);
xlApp.Quit();
System.Runtime.InteropServices.Marshal.ReleaseComObject(xlApp);
试试这个..。对我来说很管用。您应该释放该xl应用程序对象以停止该进程。
发布于 2013-07-22 06:27:41
想想看,它会杀死这个过程:
System.Diagnostics.Process[] process=System.Diagnostics.Process.GetProcessesByName("Excel");
foreach (System.Diagnostics.Process p in process)
{
if (!string.IsNullOrEmpty(p.ProcessName))
{
try
{
p.Kill();
}
catch { }
}
}
另外,你有没有试着正常关闭它?
myWorkbook.SaveAs(@"C:/pape.xltx", missing, missing, missing, missing, missing, Microsoft.Office.Interop.Excel.XlSaveAsAccessMode.xlNoChange, missing, missing, missing, missing, missing);
excelBook.Close(null, null, null); // close your workbook
excelApp.Quit(); // exit excel application
excel = null; // set to NULL
https://stackoverflow.com/questions/17777545
复制相似问题