如何解决从datagridview导入后关闭Excel进程
如上所述,我不知道如何在将数据从我的 datagridview 导入到 xls 文件后关闭 Excel 进程。问题是当我将数据保存到 xls 文件时,我仍然可以看到在后台运行的 Excel 进程。如果我打开同一个文件将数据重新导入到我的 datagridview 中,那么两个 Excel 进程现在处于活动状态。
知道如何解决这个问题吗?
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,Excel.XlSaveAsAccessMode.xlExclusive,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;
}
}
这对我有用
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。