Sanırım excel export için microsoft office framewokünü kullanıyorsunuz



Microsoft.Office.Interop.Excel._Application excel = new Microsoft.Office.Interop.Excel.Application();



Bu şekil de yeni bir excel oluşturmuşsanız yapmanız gereken export işleminizi try cache içerisine alıp finaly de quit vermeniz.

Örnek:


Microsoft.Office.Interop.Excel._Application excel = new Microsoft.Office.Interop.Excel.Application();
Microsoft.Office.Interop.Excel._Workbook workbook = excel.Workbooks.Add(Type.Missing);
Microsoft.Office.Interop.Excel._Worksheet worksheet = null;

try
{

worksheet = workbook.ActiveSheet;

worksheet.Name = "Data";

int cellRowIndex = 1;
int cellColumnIndex = 1;

//Loop through each row and read value from each column.
for (int i = 0; i < ResultGrid.Rows.Count - 1; i++)
{
for (int j = 0; j < ResultGrid.Columns.Count; j++)
{
if (cellRowIndex == 1)
{
worksheet.Cells[cellRowIndex, cellColumnIndex] = ResultGrid.Columns[j].HeaderText;
}
else
{
worksheet.Cells[cellRowIndex, cellColumnIndex] = ResultGrid.Rows[i].Cells[j].Value.ToString();
}
cellColumnIndex++;
}
cellColumnIndex = 1;
cellRowIndex++;
}
SaveFileDialog saveDialog = new SaveFileDialog
{
Filter = "Excel Dosyası (*.xlsx)|*.xlsx",
FilterIndex = 2
};

if (saveDialog.ShowDialog() == System.Windows.Forms.DialogResult.OK)
{
workbook.SaveAs(saveDialog.FileName);
MessageBox.Show("Dosya başarılı bir şekilde kaydedildi.","İşlem Başarılı",MessageBoxButtons.OK,MessageBoxIcon.Information);
BtnSave.Visible = false;
Loading.Visible = false;
LoadingText.Visible = false;
DropSurvey.Visible = true;
label4.Visible = true;
}
}
catch (System.Exception ex)
{
MessageBox.Show(ex.Message);
}
finally
{
excel.Quit();
workbook = null;
excel = null;
}



Garanti olmak açasından formun exit eventına da;



excel.Quit();
workbook = null;
excel = null;



yazabilirsiniz. Tabi bunun için tanımlayıcının public olması gerekir.