Foros del Web » Programación para mayores de 30 ;) » .NET »

Exportar datatable a excel

Estas en el tema de Exportar datatable a excel en el foro de .NET en Foros del Web. Buenas tardes, necesito exportar un datatable a excel. El problema viene en que cada tabla que quiero exportar contiene un total de 30000 registros, por ...
  #1 (permalink)  
Antiguo 14/08/2010, 05:38
 
Fecha de Ingreso: julio-2010
Mensajes: 93
Antigüedad: 14 años, 4 meses
Puntos: 0
Exportar datatable a excel

Buenas tardes,

necesito exportar un datatable a excel. El problema viene en que cada tabla que quiero exportar contiene un total de 30000 registros, por lo que la exportación se hace muy lenta.

Escribo el metodo que uso para el boton exportar:

private void bt_reciclar_Click(object sender, EventArgs e)
{
this.Campaña();
DialogResult dr = MessageBox.Show("¿Está seguro de que quiere reciclar la campaña " + campaña + "?", "Reciclar", MessageBoxButtons.OKCancel);

string concamp = @"SELECT *
FROM " + campaña;

DataTable dt = new DataTable();
da = new SqlDataAdapter(concamp, conexion);
da.Fill(dt);
nmExcel.ApplicationClass ExcelApp = new nmExcel.ApplicationClass();
ExcelApp.Application.Workbooks.Add(Type.Missing);
for (int col = 0; col < dt.Columns.Count; col++)
{
for (int row = 0; row < dt.Rows.Count; row++)
{
ExcelApp.Cells[row + 1, col + 1] = dt.Rows[row].ItemArray[col];
}
}

if (dr == DialogResult.OK)
{
SaveFileDialog CuadroDialogo = new SaveFileDialog();
CuadroDialogo.DefaultExt = "csv";
CuadroDialogo.FileName = campaña + " resultado " + DateTime.Now.ToString("dd-MM-yyyy");
CuadroDialogo.Filter = "CSV (Delimitado por comas)|*.csv";
CuadroDialogo.AddExtension = true;
CuadroDialogo.RestoreDirectory = true;
CuadroDialogo.Title = "Guardar";
CuadroDialogo.InitialDirectory = @"c:\";
if (CuadroDialogo.ShowDialog() == DialogResult.OK)
{
ExcelApp.ActiveWorkbook.SaveCopyAs(CuadroDialogo.F ileName);
ExcelApp.ActiveWorkbook.Saved = true;
CuadroDialogo.Dispose();
CuadroDialogo = null;
ExcelApp.Quit();
}
else
{
MessageBox.Show("Ha cancelado la exportación a Excel");
Application.Exit();
}
}
Opciones op = new Opciones();
op.camp = campaña;
op.Show();
this.Hide();

}


Muchas gracias.

Etiquetas: datatable, excel
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 10:00.