FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
Exportar Stringgrid a Excel
Hola amiguetes,
Estoy haciendo un pequeño programa para mi empresa (ya lo tengo casi finiquitado) y me acaba de pedir mi jefe exportar todos los datos de las consultas generadas, que además las voy metiendo en un datagrid, a EXCEL He buscado y rebuscado en la documentacion de builder, he preguntado por otros foros y he googleado como un cabroncete, pero no consigo dar con la solución para C++ Builder. He encontrado algo para Delphi pero como mis conocimientos de programación son bastante bajos, pues no he sido capaz de hacer una conversión a c++ builder. Si alguno de ustedes se encontró con la misma situación en la que me encuentro y me puede echar una manita se lo agradecería eternamente. Gracias por vuestro tiempo |
#2
|
||||
|
||||
Hola, tal vez uno de los componentes de uno de los miembros del Club Delphi.com.ar, pueda realizar eso que propones, lo puedes encontrar aquí.
Saludos.
__________________
Mi BLOG - ¡Joder, leanse la guia de estilo! Las Palabras son enanas, los ejemplos gigantes. |
#3
|
||||
|
||||
Una forma sencilla y elegante puede ser transportar "tablas" mediante el clipboard. Este sistema te permite copiar y pegar a otros programas y formatos.
Una tabla para Excel o Word tiene un formato en el clipboard asi: Columna1 + "\t" + Columna2 + "\t".....Columna_n + "\t\n"+ . . Columna1 + "\t" + Columna2 + "\t".....Columna_n + "\t\n" Así que el código para copiar al clipboard cualquier tabla, sería mas o menos así: Código:
Clipboard()->Clear(); AnsiString Text; Text = Columna1 + "\t" + Columna2 + "\t".....Columna_n + "\t\n"+ . . Columna1 + "\t" + Columna2 + "\t".....Columna_n + "\t\n"; Clipboard()->AsText = Text; Saludos. |
#5
|
|||
|
|||
Espero poder ayudarte
Hola que tal! yo igual pasé por una situación parecida y lo que hice fue lo siguiente: utilicé un objeto Ole...
El código es el siguiente: //Necesitas primero crear un objeto que te permita acceder a excel, para eso declararemos las siguientes variables Variant Excel,Libros,Libro,Hojas,Hoja; //Variant es un tipo de variable //Con esto abres excel y lo haces visible Excel=CreateOleObject("Excel.Application"); Excel.OlePropertySet("Visible",true); //Ahora necesitas crear un acceso para acceder al objeto libro Libros=Excel.OlePropertyGet("Workbooks"); //Para acceder a un libro en específico, por ejemplo el Libro1...(libro se refiere //al archivo) Libro=Libros.OlePropertyGet("Item",1); //Ya que podemos acceder al libro, ahora necesitamos crear un acceso a las //hojas Hojas=Libro.OlePropertyGet("Worksheets"); //Ahora selecciono la hoja con la que quiero trabajar Hoja=Hojas.OlePropertyGet("Item",1); //Aqui estoy agarrando la hoja 1 //tal vez esto te sirva también, por default se genera un archivo de tres //hojas, si necesitas agregar más usa esta línea: Hojas.OleProcedure("Add"); //Par etiquetar el nombre de las hojas Hojas.OlePropertyGet("Item",1).OlePropertySet("Name","MiHoja"); //Ahora que ya tengo acceso a la hoja que quiero, puedo fácilmente //manipular mis celdas... //En este ejemplo, hoja se refiere a la hoja uno como se lo asignamos //anteriormente, accedemos a su propiedad Cells, y donde dice ítem //tiene otros dos parámetros(2 y 1) pues estos son las coordenadas de las //celdas en excel (el 2 hace referencia a filas, el 1 es columnas, osea las letras), en value pues va lo que le quieras pasar a la celda, eso si en cadena Hoja.OlePropertyGet("Cells").OlePropertyGet("Item",2,1).OlePropertySet("Value",StringGrid1->Cells[0][0].c_str()); //este último código lo puedes meter en un for o algo así para pasarlo, en las //coordenadas también pueden ir variables Espero que te sirva de ayuda! Suerte! |
#6
|
|||
|
|||
Otra cosa que se me olvidó que es importante, este código funciona si le agregas a tu formulario el componente OleContainer de la paleta System y... por si las dudas agrega esta librería <ComObj.hpp>
|
#7
|
|||
|
|||
1000 Gracias Marina,
Tu expliación ha sido clara como el agua. Funciona perfecto!! Gracias por contestar tan detalladamente mis dudas Un abrazo! |
#8
|
|||
|
|||
^_^ De Nada ^_^
Qué gusto el saber que te he sido de ayuda, no soy una experta, pero si tienes alguna duda o necesitas saber algo de eso, pues no dudes en avisarme, y te responderé si sé la respuesta, ^_^ hasta la próxima!
|
#9
|
||||
|
||||
Bueno, no está mal. La única pega es que al usar Ole, el usuario debe tener instalado Excel. He encontrado una página que trae componentes para hacer la exportación nativa a Excel sin usar Ole: FireSoft ExportSuite
Saludos |
#10
|
|||
|
|||
Bueno, eso si, es el pero de esta solución, pero bueno yo lo pondría como un requerimiento del sistema para el programa...
Aunque estaría muy bien checar lo que propones, me daré una vuelta para ver que onda, sería una gran solución para ese problema, gracias por el dato!! ^_^ |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Exportar a Excel | jocey | Servers | 3 | 28-10-2008 23:33:28 |
Exportar a Excel | jocey | Varios | 3 | 06-11-2007 17:15:23 |
Exportar a excel... | BuenaOnda | Varios | 3 | 20-08-2007 09:55:07 |
Exportar .gdb a Excel | Novata2006 | Firebird e Interbase | 0 | 16-05-2006 11:52:08 |
Exportar un StringGrid a un Archivo.TxT | kokoyweb | Varios | 1 | 24-08-2004 23:04:26 |
|