Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   OOP (https://www.clubdelphi.com/foros/forumdisplay.php?f=5)
-   -   Insertar imagenes en excel (https://www.clubdelphi.com/foros/showthread.php?t=21510)

tiagor64 19-05-2005 12:46:15

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

Vyckso 02-06-2006 12:50:36

Buenas Tiagor64

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

Salu2

eligomfer 23-01-2008 08:47:23

Insertar imagen en excel
 
Alguien me podria ayudar? Quiero insertar una imagen en un excel creado desde delphi. Gracias

cHackAll 24-01-2008 01:11:43

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;

eligomfer 24-01-2008 18:03:01

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

cHackAll 24-01-2008 19:05:52

Código Delphi [-]
 excel.Workbooks[1].worksheets[1].shapes.addpicture('C:\Imágenes\ClubDelphi.jpg', False, True, 6, 6, 666, 666);

0j0: GetActiveOleObject

eligomfer 25-01-2008 08:53:02

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

eligomfer 25-01-2008 11:32:09

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".

cHackAll 26-01-2008 03:11:39

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

eligomfer 28-01-2008 11:10:00

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

cHackAll 28-01-2008 20:44:22

Cita:

Empezado por eligomfer (Mensaje 261433)
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 (Mensaje 261129)
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


La franja horaria es GMT +2. Ahora son las 11:11:37.

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