Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 23-04-2008
metroyd metroyd is offline
Miembro
 
Registrado: oct 2007
Posts: 78
Poder: 17
metroyd Va por buen camino
mandar resultado SQL a Excel??

Hola, como puedo exportar el resultado de una consulta sql a Excel??
Trabajo con delphi 6, y mysql.
Gracias
Responder Con Cita
  #2  
Antiguo 23-04-2008
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Te recomiendo los componentes ExportSuite que podrás encontrar en la página de nuestro compañero Federico.

// Saludos
Responder Con Cita
  #3  
Antiguo 23-04-2008
metroyd metroyd is offline
Miembro
 
Registrado: oct 2007
Posts: 78
Poder: 17
metroyd Va por buen camino
Gracias, son buenos, me funcionaron. Pero tendran la misma funcionalidad cuando corra mi aplicacion.exe en otra computadora??? o debo instalar los componentes en aquella maquina?
Responder Con Cita
  #4  
Antiguo 23-04-2008
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Como sucede en general con los componentes de Delphi, no requieres instalar nada extra en las computadoras donde instales tu ejecutable. Y en este caso en particular, ni siquiera requieres tener instalado Excel.

// Saludos
Responder Con Cita
  #5  
Antiguo 23-04-2008
metroyd metroyd is offline
Miembro
 
Registrado: oct 2007
Posts: 78
Poder: 17
metroyd Va por buen camino
gracias

Cita:
Empezado por roman Ver Mensaje
Como sucede en general con los componentes de Delphi, no requieres instalar nada extra en las computadoras donde instales tu ejecutable. Y en este caso en particular, ni siquiera requieres tener instalado Excel.

// Saludos
EXCELENTE AMIGO, GRACIAS POR TU AYUDA!!!!
Responder Con Cita
  #6  
Antiguo 23-04-2008
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
No hay de qué. Más bien transfiero tu agradecimiento al autor de dichos componentes, Federico Firenze, mejor conocido aquí como delphi.com.ar.

// Saludos
Responder Con Cita
  #7  
Antiguo 26-06-2008
mjjj mjjj is offline
Miembro
 
Registrado: mar 2007
Posts: 652
Poder: 18
mjjj Va por buen camino
Hola... he chequeado estos componentes y van de maravilla.

Pero lo que necesito realizar es algo diferente... necesito exportar a excel no solo una consulta SQL, sino que varias, es decir, hago una consulta y la exporto, luego otra consulta y la exporta.... etc.

Se puede realizar esto??

Saludos
Responder Con Cita
  #8  
Antiguo 26-06-2008
[egostar] egostar is offline
Registrado
 
Registrado: feb 2006
Posts: 6.557
Poder: 25
egostar Va camino a la fama
Cita:
Empezado por mjjj Ver Mensaje
Hola... he chequeado estos componentes y van de maravilla.

Pero lo que necesito realizar es algo diferente... necesito exportar a excel no solo una consulta SQL, sino que varias, es decir, hago una consulta y la exporto, luego otra consulta y la exporta.... etc.

Se puede realizar esto??

Saludos
Pues no le veo problema, depende como lo quieras hacer, manual o automatico

Si es manual, pues cada que ejecutas un query lo exportas
Si es automatico, asi como abres los queries ejecutas la funcion del componente de nuestro amigo Federico

Salud OS
__________________
"La forma de empezar es dejar de hablar y empezar a hacerlo." - Walt Disney
Responder Con Cita
  #9  
Antiguo 26-06-2008
mjjj mjjj is offline
Miembro
 
Registrado: mar 2007
Posts: 652
Poder: 18
mjjj Va por buen camino
mi idea es ir incluyendo las distintas consultas una tras otra en las filas del excel... podre realizar esto??

Lo otro... puedo incluir formulas en la planilla excel... por ejemplo una suma de filas: SUMA(B2:B7)

Como se puede hacer esto??
Responder Con Cita
  #10  
Antiguo 26-06-2008
[egostar] egostar is offline
Registrado
 
Registrado: feb 2006
Posts: 6.557
Poder: 25
egostar Va camino a la fama
Cita:
Empezado por mjjj Ver Mensaje
mi idea es ir incluyendo las distintas consultas una tras otra en las filas del excel... podre realizar esto??

Lo otro... puedo incluir formulas en la planilla excel... por ejemplo una suma de filas: SUMA(B2:B7)

Como se puede hacer esto??
No entiendo muy bien y tampoco puedo ser tajante con mi respuesta, pero no seria mejor hacer un query que te de todos los dats que requieras en lugar de hacer un query por cada consulta????

Salud OS
__________________
"La forma de empezar es dejar de hablar y empezar a hacerlo." - Walt Disney
Responder Con Cita
  #11  
Antiguo 26-06-2008
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Quizá lo que el compañero desea es colocar en una misma hoja de Excel, consultas disímiles que no pueden juntarse en una sóla consulta SQL. En ese caso, me parece que los componentes de Federico no funcinarán y habrá que buscar otra opción, por ejemplo, OLE.

// Saludos
Responder Con Cita
  #12  
Antiguo 26-06-2008
mjjj mjjj is offline
Miembro
 
Registrado: mar 2007
Posts: 652
Poder: 18
mjjj Va por buen camino
gracias compañero roman, eso es lo que ocurre, no puedo juntar los datos que necesito en una sola consulta.

La opcion que comentas OLE, como funciona...

Me puedes hacer una idea de como va la cosa...

Saludos
Responder Con Cita
  #13  
Antiguo 26-06-2008
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Más o menos así:

Código Delphi [-]
uses ComObj;

...

var
  Excel: OleVariant;
  Libro: OleVariant;
  Hoja: OleVariant;

begin
  // Creas una instancia de Excel
  Excel := CreateOleObject('Excel.Application');

  // Agregas un libro con una sólo hoja
  Excel.SheetsInNewWorkbook := 1;
  Libro := Excel.Workbooks.Add;

  // Hoja activa
  Hoja := Libro.ActiveSheet;

  // Accedes a las celdas con la propiedad Cells que es un arreglo
  // bidimensional (fila, columna) basado en 1.
  Hoja.Cells[1, 1] := 'Hola mundo';

  // Muestras la instancia de Excel
  Excel.Visible := true;
end;

Así pues, recorriendo los resultados de tu consulta puedes ir llenando las celdas de una hoja de Excel.

// Saludos
Responder Con Cita
  #14  
Antiguo 26-06-2008
mjjj mjjj is offline
Miembro
 
Registrado: mar 2007
Posts: 652
Poder: 18
mjjj Va por buen camino
gracias roman funciona a la perfeccion.

otra consulta... con este mismo metodo, estoi tratando de ingresar una formula a cierta celda en particular, como sigue:

Código Delphi [-]
inicio:=2;
fin:=5;
excel.Cells[fila,I].Value:= '=SUMA(C'+inttostr(inicio)+':C'+inttostr(fin);

El problema es que cuando me voy a la planilla, la formula esta escrita en la celda, pero no la reconoce como formula, debo hacerle un clic a la celda y luego a edit para editar la formula... ahi recien la reconoce como tal.

Porque podra ser esto?

Otra cosa... le puedo asignar formato a cierta celda en particular con este mismo metodo?

Gracias... saludos
Responder Con Cita
  #15  
Antiguo 26-06-2008
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Las fórmulas debes ponerlas en inglés, o sea, en lugar de SUMA pon SUM.

// Saludos
Responder Con Cita
  #16  
Antiguo 26-06-2008
mjjj mjjj is offline
Miembro
 
Registrado: mar 2007
Posts: 652
Poder: 18
mjjj Va por buen camino
gracia nuevamente roman

la ultima pregunta... con este mismo metodo OLe, puedo carle formato a cierta celda en particular, por ejemplo, negrita, tipo moneda, etc??

gracias
Responder Con Cita
  #17  
Antiguo 26-06-2008
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Por ejemplo

Código Delphi [-]
Hoja.Range['A5:A5'].Font.Bold := true;

donde Hoja es como en mi ejemplo.

// Saludos
Responder Con Cita
  #18  
Antiguo 26-06-2008
mjjj mjjj is offline
Miembro
 
Registrado: mar 2007
Posts: 652
Poder: 18
mjjj Va por buen camino
muchas gracias roman... funciono perfecto.

me puedes dar una lista de las propiedades que puedo modificar:

por ejemplo:

centrado, justificado izq, justificado derecha, color de las letras, color del fondo, bordes (completo, izq, der), tamaño y nombre de letra...

espero no ser de tanto molestia.... muchas gracias

saludos
Responder Con Cita
  #19  
Antiguo 26-06-2008
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Realmente es imposible dar una lista porque hay multitud de objetos, colecciones, métodos, propiedades y valores. El ejemplo que te pongo ahora sólo abarcará una ínfima parte:

Código Delphi [-]
var
  Excel: OleVariant;
  Libro: OleVariant;
  Hoja: OleVariant;

begin
  Excel := CreateOleObject('Excel.Application');

  Excel.SheetsInNewWorkbook := 1;
  Libro := Excel.Workbooks.Add;
  Hoja := Libro.ActiveSheet;

  Hoja.Cells[1, 1] := 'Hola mundo';

  // Fuente de la celda
  Hoja.Cells[1, 1].Font.Name := 'Comic Sans MS';
  Hoja.Cells[1, 1].Font.Size := 18;
  Hoja.Cells[1, 1].Font.Color := RGB($ff, $ff, $ff);
  Hoja.Cells[5, 1].Font.Bold := true;

  // Alineación
  Hoja.Cells[1, 1].HorizontalAlignment := xlCenter;
  Hoja.Cells[1, 1].VerticalAlignment := xlTop;

  // Relleno
  Hoja.Cells[1, 1].Interior.Color := RGB($00, $80, $c0);
  Hoja.Cells[1, 1].Interior.Pattern := xlSolid;

  // Altura de la fila
  Hoja.Range['A1'].RowHeight := 49.5;

  // Combinar celdas
  Hoja.Range['A1:G1'].Merge;

  // Borde
  Hoja.Range['A1:G1'].Borders.LineStyle := xlContinuous;

  Excel.Visible := true;
end;

La mejor fuente de información, sin duda y a pesar será la Referencia de Microsoft Excel Visual Basic que se incluye en la ayuda de Excel. Pero sabe que no siempre es fácil dilucidar cómo se aplican las propiedades y métodos. Muchas veces ayuda grabar una macro de Excel haciendo lo que deseamos y examinando el código de la macro en el editor de Visual Basic de Excel. Por ejemplo, para preparar el ejemplo, no atinaba de sólo ver la ayuda, a ver como se ponía el relleno; entonces hice una macro y me di cuenta que se trataba de la propiedad Interior. Aún así, los macros no siempre se traducen fácilmente. En ocasiones lo que aparentemente se llama con paréntesis, en delphi se llama con corchetes.

Como tip general, te comento que de lo más importante que hay es el conjunto Range, que puede ser una celda, una fila, una columna o conjuntos de ellas.

Otra cosa es que para que delphi te acepte constantes como xlCenter, xlSolid y xlContinuous, debes incluir el archivo con las definiciones de excel, puede ser Excel97 o Excel2000 según la versión que tengas o desees.

// Saludos
Responder Con Cita
  #20  
Antiguo 30-06-2008
mjjj mjjj is offline
Miembro
 
Registrado: mar 2007
Posts: 652
Poder: 18
mjjj Va por buen camino
gracias roman... me ha funcionado todo bien, lo unico con la cual no he podido, es con los bordes.

Necesito que en cierta celda en particular, tenga borde inferior y borde superior.

Como hago eso?

Saludos
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
Añadir a una celda de documento excel el resultado de una consulta MySQL trucutrucu PHP 3 21-09-2007 22:43:45
excel a delphi, como mostrar columnas de excel Vyckso Servers 2 13-08-2007 12:38:08
como mandar un dbgrid a una hoja de excel de solo lectura ddd_ddd Varios 1 06-09-2006 20:05:10
Resultado en Excel alcides Impresión 7 23-02-2005 18:31:23
Problema al actualizar Excel 2000 a Excel XP victork_py Servers 1 06-08-2004 19:20:41


La franja horaria es GMT +2. Ahora son las 17:03:50.


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