从datagridview导入后关闭Excel进程



如上所述,我不知道如何在我从datagridview导入数据到xls文件后关闭Excel进程。问题是,当我将数据保存到xls文件时,我仍然可以看到Excel进程在后台运行。如果我打开相同的文件导入数据回我的datagridview两个Excel进程现在是活动的。

你知道怎么解决这个问题吗?

这是我的代码保存我的数据作为一个xls文件:

private void ExportDataToExcelToolStripMenuItem_Click(object sender, EventArgs e)
{
SaveFileDialog SaveExcel = new SaveFileDialog()
{
Title = "Save Excel File",
CheckPathExists = true,
DefaultExt = "txt",
Filter = "Excel files (*.xls)|*.xls",
FilterIndex = 1,
RestoreDirectory = true
};
if (SaveExcel.ShowDialog() == DialogResult.OK)
{
Excel.Application xlApp;        //Implementierung der Applikation, welche die Daten aus dem DataGridView in eine xls Datei schreiben kann
Excel.Workbook xlWorkBook;
Excel.Worksheet xlWorkSheet;
object misValue = System.Reflection.Missing.Value;
xlApp = new Excel.Application();
xlWorkBook = xlApp.Workbooks.Add(misValue);
xlWorkSheet = (Excel.Worksheet)xlWorkBook.Worksheets.get_Item(1);       //get_Item(1) ist essentiell, da festgelegt wird auf welchem Sheet das gespeichert wird. In diesem Falle auf Sheet 1
int i = 0;
int j = 0;
for (i = 0; i <= DataGridViewCell.RowCount - 1; i++)
{
for (j = 0; j <= DataGridViewCell.ColumnCount - 1; j++)     //Die Zeilen und Spalten vom DataGridView werden gelesen
{
DataGridViewCell cell = DataGridViewCell[j, i];
xlWorkSheet.Cells[i + 1, j + 1] = cell.Value;       //Daten werden den Spalten und Zeilen der xls Datei hinzugefügt
}
}
xlWorkBook.SaveAs(SaveExcel.FileName, Excel.XlFileFormat.xlWorkbookNormal, misValue, misValue, misValue, misValue, Excel.XlSaveAsAccessMode.xlExclusive, misValue, misValue, misValue, misValue, misValue);     //Daten werden in einer xls Datei gespeichert
xlWorkBook.Close(0);        //Excel Applikation wird wieder geschlossen und Prozess angehalten
xlApp.Quit();       
ReleaseObject(xlWorkSheet);
ReleaseObject(xlWorkBook);
ReleaseObject(xlApp);
}
foreach (Process closeProcess in Process.GetProcesses())      
{
if (closeProcess.ProcessName.Equals("EXCEL"))
{
closeProcess.Kill();
break;
}
}

this worked for me

最新更新