exportação de dados de um datagridview para excel
29/11/2011
0
Bom dia a todos,
Estou tentando exportar dados de um datagridview para excel e não estou obtendo sucesso. Nunca fiz uma funcionalidade dessa e não tenho muito dominio com aplicações windows forms. Portanto se alguem poder ajudar, agradeço.
Dados da aplicação:
1. Aplicação desktop (windoes forms);
2. Linguagem C#;
3. Uma opção de relatório com um datagridview(preenchido por um dataset) e um botão para exportar para excel;
4. O prenchimento do datagridview já foi feito;
Dúvida:
1. Existe alguma bilioteca que contemple todas as versões do pacote office excel.
2. Alguém teria uma função que faça essa exportação e que possa disponibilizar para meu aprendizado.
Desde já agradeço pela atenção
Paulo.
Estou tentando exportar dados de um datagridview para excel e não estou obtendo sucesso. Nunca fiz uma funcionalidade dessa e não tenho muito dominio com aplicações windows forms. Portanto se alguem poder ajudar, agradeço.
Dados da aplicação:
1. Aplicação desktop (windoes forms);
2. Linguagem C#;
3. Uma opção de relatório com um datagridview(preenchido por um dataset) e um botão para exportar para excel;
4. O prenchimento do datagridview já foi feito;
Dúvida:
1. Existe alguma bilioteca que contemple todas as versões do pacote office excel.
2. Alguém teria uma função que faça essa exportação e que possa disponibilizar para meu aprendizado.
Desde já agradeço pela atenção
Paulo.
Paulo Magalhães
Curtir tópico
+ 0
Responder
Posts
01/12/2011
Flavia Santos
Paulo,
Dá uma olhadinha neste codigo abaixo, vê se te ajuda.
private void button1_Click(object sender, EventArgs e)
{
Excel.Application xlApp;
Excel.Workbook xlWorkBook;
Excel.Worksheet xlWorkSheet;
object misValue = System.Reflection.Missing.Value;
xlApp = new Excel.ApplicationClass();
xlWorkBook = xlApp.Workbooks.Add(misValue);
xlWorkSheet = (Excel.Worksheet)xlWorkBook.Worksheets.get_Item(1);
int i = 0;
int j = 0;
for (i = 0; i <= dgvBusca.RowCount - 1; i++)
{
for (j = 0; j <= dgvBusca.ColumnCount - 1; j++)
{
DataGridViewCell cell = dgvBusca[j, i];
xlWorkSheet.Cells[i + 1, j + 1] = cell.Value;
}
}
xlWorkBook.SaveAs(Teste1.xls, Excel.XlFileFormat.xlWorkbookNormal, misValue, misValue, misValue, misValue, Excel.XlSaveAsAccessMode.xlExclusive, misValue, misValue, misValue, misValue, misValue);
xlWorkBook.Close(true, misValue, misValue);
xlApp.Quit();
releaseObject(xlWorkSheet);
releaseObject(xlWorkBook);
releaseObject(xlApp);
MessageBox.Show(Excel criado com sucesso!);
}
private void releaseObject(object obj)
{
try
{
System.Runtime.InteropServices.Marshal.ReleaseComObject(obj);
obj = null;
}
catch (Exception ex)
{
obj = null;
MessageBox.Show(ocorreu um erro: + ex.ToString());
}
finally
{
GC.Collect();
}
}
Dá uma olhadinha neste codigo abaixo, vê se te ajuda.
private void button1_Click(object sender, EventArgs e)
{
Excel.Application xlApp;
Excel.Workbook xlWorkBook;
Excel.Worksheet xlWorkSheet;
object misValue = System.Reflection.Missing.Value;
xlApp = new Excel.ApplicationClass();
xlWorkBook = xlApp.Workbooks.Add(misValue);
xlWorkSheet = (Excel.Worksheet)xlWorkBook.Worksheets.get_Item(1);
int i = 0;
int j = 0;
for (i = 0; i <= dgvBusca.RowCount - 1; i++)
{
for (j = 0; j <= dgvBusca.ColumnCount - 1; j++)
{
DataGridViewCell cell = dgvBusca[j, i];
xlWorkSheet.Cells[i + 1, j + 1] = cell.Value;
}
}
xlWorkBook.SaveAs(Teste1.xls, Excel.XlFileFormat.xlWorkbookNormal, misValue, misValue, misValue, misValue, Excel.XlSaveAsAccessMode.xlExclusive, misValue, misValue, misValue, misValue, misValue);
xlWorkBook.Close(true, misValue, misValue);
xlApp.Quit();
releaseObject(xlWorkSheet);
releaseObject(xlWorkBook);
releaseObject(xlApp);
MessageBox.Show(Excel criado com sucesso!);
}
private void releaseObject(object obj)
{
try
{
System.Runtime.InteropServices.Marshal.ReleaseComObject(obj);
obj = null;
}
catch (Exception ex)
{
obj = null;
MessageBox.Show(ocorreu um erro: + ex.ToString());
}
finally
{
GC.Collect();
}
}
Responder
Clique aqui para fazer login e interagir na Comunidade :)