Exportar a Excel un gran volumen de datos de forma rápida
Artículo por Club Developers · 28 agosto 2006
5342 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); }


