Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Otros entornos y lenguajes > C++ Builder
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 23-05-2008
santipeich santipeich is offline
Registrado
 
Registrado: may 2008
Posts: 3
Poder: 0
santipeich Va por buen camino
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
Responder Con Cita
  #2  
Antiguo 23-05-2008
Avatar de enecumene
[enecumene] enecumene is offline
Miembro de Oro
 
Registrado: may 2006
Ubicación: Santo Domingo, Rep. Dom.
Posts: 3.040
Poder: 21
enecumene Va por buen camino
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.
Responder Con Cita
  #3  
Antiguo 24-05-2008
Avatar de escafandra
[escafandra] escafandra is offline
Miembro Premium
 
Registrado: nov 2007
Posts: 2.197
Poder: 20
escafandra Tiene un aura espectacularescafandra Tiene un aura espectacular
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;
Es otra idea. Espero que te sirva de ayuda.
Saludos.
Responder Con Cita
  #4  
Antiguo 09-06-2008
Avatar de escafandra
[escafandra] escafandra is offline
Miembro Premium
 
Registrado: nov 2007
Posts: 2.197
Poder: 20
escafandra Tiene un aura espectacularescafandra Tiene un aura espectacular
Bueno, pues navegando he encontrado esto, puede que también te sirva de ayuda....


Saludos.

Última edición por escafandra fecha: 09-06-2008 a las 14:21:07.
Responder Con Cita
  #5  
Antiguo 11-06-2008
M@R!N@ M@R!N@ is offline
Miembro
 
Registrado: feb 2008
Posts: 21
Poder: 0
M@R!N@ Va por buen camino
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!
Responder Con Cita
  #6  
Antiguo 11-06-2008
M@R!N@ M@R!N@ is offline
Miembro
 
Registrado: feb 2008
Posts: 21
Poder: 0
M@R!N@ Va por buen camino
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>
Responder Con Cita
  #7  
Antiguo 12-06-2008
santipeich santipeich is offline
Registrado
 
Registrado: may 2008
Posts: 3
Poder: 0
santipeich Va por buen camino
1000 Gracias Marina,

Tu expliación ha sido clara como el agua. Funciona perfecto!!
Gracias por contestar tan detalladamente mis dudas
Un abrazo!
Responder Con Cita
  #8  
Antiguo 13-06-2008
M@R!N@ M@R!N@ is offline
Miembro
 
Registrado: feb 2008
Posts: 21
Poder: 0
M@R!N@ Va por buen camino
^_^ 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!
Responder Con Cita
  #9  
Antiguo 13-06-2008
Avatar de escafandra
[escafandra] escafandra is offline
Miembro Premium
 
Registrado: nov 2007
Posts: 2.197
Poder: 20
escafandra Tiene un aura espectacularescafandra Tiene un aura espectacular
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
Responder Con Cita
  #10  
Antiguo 15-06-2008
M@R!N@ M@R!N@ is offline
Miembro
 
Registrado: feb 2008
Posts: 21
Poder: 0
M@R!N@ Va por buen camino
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!! ^_^
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Exportar a Excel jocey Servers 3 28-10-2008 22:33:28
Exportar a Excel jocey Varios 3 06-11-2007 16:15:23
Exportar a excel... BuenaOnda Varios 3 20-08-2007 08:55:07
Exportar .gdb a Excel Novata2006 Firebird e Interbase 0 16-05-2006 10:52:08
Exportar un StringGrid a un Archivo.TxT kokoyweb Varios 1 24-08-2004 22:04:26


La franja horaria es GMT +2. Ahora son las 07:29:13.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi