Exportar a Excel un gran volumen de datos de forma rápida
Artículo por Club Developers · 28 agosto 2006
4595 vistas
El siguiente código permite exportar de forma rápida los datos de una consulta o un procedimiento almacenado hacia una hoja Excel. Es interesante si el volumen de información a exportar es grande (millares de líneas). Tendremos que añadir la referencia "Microsoft Excel 11.0 Object Library".
csharp
using Microsoft.Office.Interop;  // en un clic de un botón por ejemplo  Excel.Application xlApp;  try  {  xlApp = GetObject(, "excel.application")  }  catch(Exception )  {  }  finally  {  xlApp.Visible = false;  }  // añadimos una página  Excel.Worksheet xsTransfert = xlApp.Workbooks.Add.ActiveSheet;  try  {  // creamos cadena de conexión  // (en el ejemplo a SQL Server)  xsTransfert.QueryTables.Add(Connection:= _   "ODBC;DRIVER=SQL Server;SERVER= Nombre_Server;Integrated Security=SSPI;" & _   "APP=Microsoft® Query;DATABASE= Nombre_BD;Trusted_Connection=Yes", _ Destination:=xsTransfert.Range("A1"))   .CommandText = "Nombre_Stored_Procedure" // o consulta SELECT   .Name = "nombre_hoja_excel"   .FieldNames = True   .RowNumbers = True   .FillAdjacentFormulas = False   .PreserveFormatting = True   .RefreshOnFileOpen = False   .BackgroundQuery = True   .RefreshStyle = Excel.XlCellInsertionMode.xlOverwriteCells   .SavePassword = False   .SaveData = False   .AdjustColumnWidth = True   .RefreshPeriod = 0   .PreserveColumnInfo = True   .Refresh(BackgroundQuery:=False)  // lo mostramos xlApp.Visible = true; catch(Exception ex) {  MessageBox.Show(ex.Message); }