public bool ExportDataGridview(DataGridView gridView, bool isShowExcle) { if (gridView.Rows.Count == 0) return false; //建立Excel对象 Microsoft.Office.Interop.Excel.Application excel = new Microsoft.Office.Interop.Excel.Application(); excel.Application.Workbooks.Add(true); excel.Visible = isShowExcle; //生成字段名称 for (int i = 0; i < gridView.ColumnCount; i++) { excel.Cells[1, i + 1] = gridView.Columns[i].HeaderText; } //填充数据 for (int i = 0; i < gridView.RowCount - 1; i++) { for (int j = 0; j < gridView.ColumnCount; j++) { if (gridView[j, i].ValueType == typeof(string)) { excel.Cells[i + 2, j + 1] = "'" + gridView[j, i].Value.ToString(); } else { excel.Cells[i + 2, j + 1] = gridView[j, i].Value.ToString(); } } } return true; } 问题是。当导出后,保存并关闭excel文件。此时进程中依然存在一个excel.exe的进程。 程序执行完以后,调用垃圾回收GC.Collect()可以清楚进程中的excel.exe。。垃圾回收机制实在是唉!!!