quando a aplicação vai criar um arquivo .xls de 9 colunas e 20000 linhas esta demorando cerca de 10 minutos para criar e a aplicação fica travada durante todo esse tempo
tem como diminuir o tempo ou fazer ela nao travar?
codigo
private void button1_Click(object sender, EventArgs e)
{
try
{
Excel.Application xlApp;
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);
int g = 0;
for (int i = 0; i < Globals.Items_Info.itemstypelist.Count; i++)
{
g++;
xlWorkSheet.Cells[g, 1] = Globals.Items_Info.itemsidlist[i];
xlWorkSheet.Cells[g, 2] = Globals.Items_Info.itemsnamelist[i];
xlWorkSheet.Cells[g, 3] = Globals.Items_Info.itemslevellist[i];
xlWorkSheet.Cells[g, 4] = "No";
xlWorkSheet.Cells[g, 5] = "No";
xlWorkSheet.Cells[g, 6] = "No";
xlWorkSheet.Cells[g, 7] = "No";
xlWorkSheet.Cells[g, 8] = "No";
xlWorkSheet.Cells[g, 9] = "No";
}
xlWorkBook.SaveAs(Application.StartupPath + @"\Cbot.xls", Excel.XlFileFormat.xlWorkbookNormal, misValue, misValue, misValue, misValue,
Excel.XlSaveAsAccessMode.xlExclusive, misValue, misValue, misValue, misValue, misValue);
xlWorkBook.Close(true, misValue, misValue);
xlApp.Quit();
liberarObjetos(xlWorkSheet);
liberarObjetos(xlWorkBook);
liberarObjetos(xlApp);
}
catch (Exception ex)
{
MessageBox.Show("Erro : " + ex.Message);
}
private void liberarObjetos(object obj)
{
try
{
System.Runtime.InteropServices.Marshal.ReleaseComObject(obj);
obj = null;
}
catch (Exception ex)
{
obj = null;
MessageBox.Show("Ocorreu um erro durante a liberação do objeto " + ex.ToString());
}
finally
{
GC.Collect();
}
}