Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 19-05-2005
tiagor64 tiagor64 is offline
Miembro
 
Registrado: ene 2005
Posts: 48
Poder: 0
tiagor64 Va por buen camino
Insertar imagenes en excel

Hola foro:

Ya he visto que existen mas hilos sobre este tema, pero no he conseguido solucionarlo con lo que se decia en ellos, algo are mal
Estoy intentando insertar una imagen en un excel en blanco creado desde delphi
lo he intentado con .ActiveSheet.Pictures.Insert('imagen.bmp'); pero me da un error y no encuentra el Pictures me dice undelcared identifier

Agradeceria cualquier ayuda de tipo general para ver si encaminaba un poco el camino.

Muchas gracias de antemano
Responder Con Cita
  #2  
Antiguo 02-06-2006
Avatar de Vyckso
[Vyckso] Vyckso is offline
Miembro Premium
 
Registrado: may 2006
Ubicación: Madrid
Posts: 16
Poder: 0
Vyckso Va por buen camino
Buenas Tiagor64

Prueba con esto:
Código Delphi [-]
ActiveSheet.Pictures.Insert('imagen.bmp').select;

Salu2
Responder Con Cita
  #3  
Antiguo 23-01-2008
eligomfer eligomfer is offline
Registrado
 
Registrado: ene 2008
Posts: 6
Poder: 0
eligomfer Va por buen camino
Insertar imagen en excel

Alguien me podria ayudar? Quiero insertar una imagen en un excel creado desde delphi. Gracias
Responder Con Cita
  #4  
Antiguo 24-01-2008
Avatar de cHackAll
[cHackAll] cHackAll is offline
Baneado?
 
Registrado: oct 2006
Posts: 2.159
Poder: 20
cHackAll Va por buen camino
Código Delphi [-]
uses ComObj;
 
procedure TForm1.Button1Click(Sender: TObject);
var excel: OleVariant;
begin
 excel := CreateOleObject('Excel.Application');
 excel.Workbooks.add.worksheets[1].shapes.addpicture('C:\Imágenes\ClubDelphi.jpg', False, True, 6, 6, 666, 666);
 excel.visible := True
end;
Responder Con Cita
  #5  
Antiguo 24-01-2008
eligomfer eligomfer is offline
Registrado
 
Registrado: ene 2008
Posts: 6
Poder: 0
eligomfer Va por buen camino
Ofu que de errores

Muchas gracias por tu explicación cHackAll pero no consigo insertar la imagen. Te explico mejor. Ya tengo creado el libro de excel y demas, y quiero insertar una imagen en una casilla concreta pero con tu explicación la inserto en una página nueva. Me sale este error: Incompatible types: 'TOleEnum' and 'TQRImage'. Gracias por todo y siento el no saber
Responder Con Cita
  #6  
Antiguo 24-01-2008
Avatar de cHackAll
[cHackAll] cHackAll is offline
Baneado?
 
Registrado: oct 2006
Posts: 2.159
Poder: 20
cHackAll Va por buen camino
Código Delphi [-]
 excel.Workbooks[1].worksheets[1].shapes.addpicture('C:\Imágenes\ClubDelphi.jpg', False, True, 6, 6, 666, 666);

0j0: GetActiveOleObject
Responder Con Cita
  #7  
Antiguo 25-01-2008
eligomfer eligomfer is offline
Registrado
 
Registrado: ene 2008
Posts: 6
Poder: 0
eligomfer Va por buen camino
Buenos dias de nuevo. Sigo sin poder insertar la imagen. A ver, me creo el objeto excel: OleVariant;. Luego pongo:
excel := CreateOleObject('Excel.Application');
excel.teLibro[1].teHoja.shapes.addpicture('C:\Imágenes\ClubDelphi.jpg', False, True, 6, 6, 666, 666);
Pero nada de nada. Gracias
Responder Con Cita
  #8  
Antiguo 25-01-2008
eligomfer eligomfer is offline
Registrado
 
Registrado: ene 2008
Posts: 6
Poder: 0
eligomfer Va por buen camino
Sigue sin insertarse

Al final tengo esto;
excel := CreateOleObject('Excel.Application');
excel := GetActiveOleObject('Excel.Application');
excel.Visible := True;
excel.teLibro[1].teHoja.Range['A1', 'A1'].shapes.addpicture('C:\Dibujo.bmp', False, True, 6, 6, 666, 666);
Pero nada, sale el error:
"MEthod teHoja not supported by automation object".
Responder Con Cita
  #9  
Antiguo 26-01-2008
Avatar de cHackAll
[cHackAll] cHackAll is offline
Baneado?
 
Registrado: oct 2006
Posts: 2.159
Poder: 20
cHackAll Va por buen camino
Pues no se de dónde te inventaste teLibro y teHoja... los nombres que se utiliza al trabajar con los métodos de un objeto OLE-COM son definidos por el desarrollador de dichos objetos (en éste caso Microsoft).

Si quieres acceder a una hoja diferente debes utilizar otros índices; por ejemplo: worksheets[6]; tambien es posible hacerlo de la siguiente forma:
Código Delphi [-]
 excel.workbooks('libro6.xls').worksheets('hoja6').activate;
 excel.activesheet.


Te muestro de nuevo un ejemplo con un documento de Excel que ya existe. Tambin te muestro la forma de uso de GetActiveOleObject;

Código Delphi [-]
procedure TForm1.Button1Click(Sender: TObject);
var excel: OleVariant;
begin
 try
  excel := GetActiveOleObject('Excel.Application');
 except
  try
   excel := CreateOleObject('Excel.Application');
  except
   ShowMessage('No se pudo crear el objeto de Excel');
   Exit;
  end;
 end;
 excel.Workbooks.Open('c:\librucho1.xls').worksheets[1].shapes.addpicture('C:\Imágenes\ClubDelphi.jpg', False, True, 0, 0, -1, -1);
 excel.visible := True
end;

Saludos

Última edición por cHackAll fecha: 27-01-2008 a las 02:13:45. Razón: Añado un método
Responder Con Cita
  #10  
Antiguo 28-01-2008
eligomfer eligomfer is offline
Registrado
 
Registrado: ene 2008
Posts: 6
Poder: 0
eligomfer Va por buen camino
Ya se inserta la imagen. Muchas gracias chachall. El problema que tengo ahora es que si tengo abierto mas de un libro, siempre se inserta en el mismo. ¿A que se debe esto? Gracias de nuevo
Responder Con Cita
  #11  
Antiguo 28-01-2008
Avatar de cHackAll
[cHackAll] cHackAll is offline
Baneado?
 
Registrado: oct 2006
Posts: 2.159
Poder: 20
cHackAll Va por buen camino
Cita:
Empezado por eligomfer Ver Mensaje
Ya se inserta la imagen. Muchas gracias chachall. El problema que tengo ahora es que si tengo abierto mas de un libro, siempre se inserta en el mismo. ¿A que se debe esto? Gracias de nuevo
Cita:
Empezado por cHackAll Ver Mensaje
Si quieres acceder a una hoja diferente debes utilizar otros índices; por ejemplo: worksheets[6]; tambien es posible hacerlo de la siguiente forma:
Código Delphi [-]
excel.workbooks('libro6.xls').worksheets('hoja6').activate;
excel.activesheet.

Estas usando .worksheets[1].... debes cambiar de hoja a la que necesitas.

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


La franja horaria es GMT +2. Ahora son las 13:56:54.


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