FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
|
#1
|
|||
|
|||
Exportar Contenido DBGrid a Excel?
Que tal amigos foreros, estoy desarrollando una aplicacion y ya tengo todo lo necesario (base de datos, consultas, etc).
Veran, debo generar un reporte trimestral de estadisticas, los datos los consulto y los muestro en un DBGrid, pero necesito exportar todo lo que se este mostrando en el grid a un documento de excel.. Anteriormente hice algo parecido, solo que importaba datos de algunos Edit Labels a excel usando el ExcelOLEObject, solo que ahora no tengo la menor idea de como exportar los datos del DBGrid a excel...?? Estoy trabajando con C++Builder 6. Cualquier Ayuda o Sugerencia es Bienvenida. De Antemano, Gracias... Saludos. |
#2
|
||||
|
||||
Te recomiendo el TmxExport de Max. Funcionan para Delphi y C++ Builder y funcionan de maravilla.
__________________
Germán Estévez => Web/Blog Guía de estilo, Guía alternativa Utiliza TAG's en tus mensajes. Contactar con el Clubdelphi P.D: Más tiempo dedicado a la pregunta=Mejores respuestas. |
#3
|
|||
|
|||
Que tal Neftali, ya lo baje pero no se como instalarlo al builder...
segui las instrucciones del leeme y descargue tambien el excelnative, pero aun no puedo... intente hacerlo en la opcion de componentes del builder, pero me pide un archivo .cpp, y lo que vi tambien, que los archivos de paquetes son en dpk, y los de builder son bpk. Me podrias explicar como puedo instalarle el componente?? y para usarse, hay alguna pagina para bajar ejemplos de codigos?? Saludos... |
#4
|
|||
|
|||
mmm los traes de un DBGrid, en ese caso se puede entender que los datos que quieres exportar vienen de una base de datos no?
Qué te parece este código. Código:
//declaracion de variables Variant XL,v0,v1,v2,v3; //abres excel XL=Variant::CreateObject("excel.application"); //la abres con la ventana visivle o si tiene false la ventana es invisible XL.OlePropertySet("Visible", true); //abre el archivo C:\\mi_archivo.xls, se puede "SaveAs" en lugar de "Open" para crear en lugar de abrir XL.OlePropertyGet("Workbooks").OleProcedure("Open", "C:\\mi_archivo.xls"); //abres la hoja1 en este caso llamada reporte v0=XL.OlePropertyGet("Sheets", "Reporte"); v1=v0.OlePropertyGet("Cells"); //aqui pones el nombre de las columnas que vas usar de la BD String columnas[6]={"col1", "col2", "col3", "col4", "col5", "col6"}; //qq es un query ya con una consulta hecha qq->First(); for (int i = 1; i <= qq->RecordCount; i++) { for (int ii = 0; ii < 6; ii++) { //se va escribiendo dato por dato v1.OlePropertyGet("Cells", i+4, ii+1).OlePropertySet("Value", qq->FieldByName(columnas[ii])->AsString.t_str()); } qq->Next(); } XL.OlePropertySet("DisplayAlerts", false); XL.OleProcedure("Save"); XL=Unassigned; MessageBoxA(Handle, "ya esta", "", MB_ICONINFORMATION |
#5
|
|||
|
|||
Que tal Cero, asi es, los datos los muestro en un DBGrid provenientes de una base de datos..
Probe el codigo q me pusiste, pero me tira este error: Le movi algunas cosas y salio peor, me marcaba un error ASSET...:S aqui te pongo como puse el codigo: Código:
//declaracion de variables Variant XL,v0,v1,v2,v3; //abres excel XL=Variant::CreateObject("excel.application"); //la abres con la ventana visivle o si tiene false la ventana es invisible XL.OlePropertySet("Visible", true); //abre el archivo C:\\mi_archivo.xls, se puede "SaveAs" en lugar de "Open" para crear en lugar de abrir XL.OlePropertyGet("Workbooks").OleProcedure("SaveAs", "C:\\mi_archivo.xls"); //abres la hoja1 en este caso llamada reporte v0=XL.OlePropertyGet("Sheets", "Reporte"); v1=v0.OlePropertyGet("Cells"); //aqui pones el nombre de las columnas que vas usar de la BD String columnas[19]={"Total_casos_colera", "cepas_positivasvibrio", "Total_muestrasproc", "Deter_cloro", "Total_detercloro", "ID_coberturadeteccion"," P_coberturadeteccion","ID_tratoportuno","P_tratoportuno","ID_eficiencialab","P_eficiencialab","ID_cloracionagua","P_cloracionagua","Año","Localidad","Trimestre"}; //qq es un query ya con una consulta hecha ADODataSet2->First(); for (int i = 1; i <= ADODataSet2->RecordCount; i++) { for (int ii = 0; ii < 19; ii++) { //se va escribiendo dato por dato v1.OlePropertyGet("Cells", i+4, ii+1).OlePropertySet("Value", ADODataSet2->FieldByName(columnas[ii])->AsString.c_str()); } //fin for i ADODataSet2->Next(); } //fin for ii XL.OlePropertySet("DisplayAlerts", false); XL.OleProcedure("Save"); XL=Unassigned; MessageBoxA(Handle, "listo vale", "", MB_ICONINFORMATION); Porque me marcara ese error..?? Saludos.. Última edición por Neftali [Germán.Estévez] fecha: 08-02-2010 a las 09:57:55. Razón: Añadida la imagen |
#6
|
|||
|
|||
Lo siento el código que te di era para abrir un xls ya creado con anterioridad, y meterle los datos (en mi opinión es mejor ya que puedes poner imágenes y darle un formato más agradable de una forma fácil).
Ahora para crear el xls desde cero solo se necesitarían unas pequeñas modificaciones que son: Código:
Variant XL,v0,v1; //quite variables que no se usan XL=Variant::CreateObject("excel.application"); XL.OlePropertySet("Visible", true); XL.OlePropertyGet("Workbooks").OleProcedure("Add"); //se agrega un libro //Aqui e se cambia Reporte por Hoja1 que es el nombre por defecto de las hojas de excel v0=XL.OlePropertyGet("Sheets", "Hoja1"); v1=v0.OlePropertyGet("Cells"); //DATOS// //se escriben los datos como ya lo haces v1.OlePropertyGet("Cells", 2/*cordenada y*/, 3/*cordenada x*/).OlePropertySet("Value", "lolo"); XL.OlePropertySet("DisplayAlerts", false); //aqui es donde se guarda XL.OlePropertyGet("Workbooks").OlePropertyGet("Item",1).OleProcedure("SaveAs", "C:\\test.xlsx"/*xlsxpor que uso office 2007*/); XL=Unassigned; Pd2. Ese error da cuando se intenta acceder a una función que no existe, debido a que el manejo de “OleProcedure” es complejo no me di cuenta de los dos fallos del anterior código. Nos vemos y cuenta como te fue. Edito: en caso de que abras Excel de forma oculta, no se te olvide poner “XL.OleProcedure("Quit");” antes de “XL=Unassigned;” para cerrarlo, de lo contrario se quedara abierto y solo se serrara terminando el proceso en el administrador. Última edición por _cero_ fecha: 07-02-2010 a las 05:48:26. |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Exportar un DBGRID a excel con formato de fecha | Luis Castro | Varios | 3 | 21-01-2011 21:54:38 |
exportar a excel | rakka | Varios | 12 | 03-09-2008 00:53:31 |
Exportar un DBGRID a excel | luisneria | Varios | 4 | 16-03-2007 23:34:43 |
exportar dbgrid a excel | stuka | Varios | 7 | 21-07-2006 00:16:33 |
Exportar a Excel | pruz | Varios | 8 | 01-07-2004 15:47:37 |
|