Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Servers (https://www.clubdelphi.com/foros/forumdisplay.php?f=9)
-   -   Problema con traspaso de archivo jpg o bmp a excel (https://www.clubdelphi.com/foros/showthread.php?t=34442)

vicvil 09-08-2006 19:22:35

Problema con traspaso de archivo jpg o bmp a excel
 
Estoy creando un archivo en excel con el componente TExcelAplication y necesito pasarle un archivo jpg o bmp. He visto en algunos foros que se puede hacer de la siguiente forma :

ActiveSheet.Pictures.Insert(ruta).select;

esto lo corroboré grabando una macro en excel donde inserto una imagen desde un archivo y al ver la macro me muestra esta misma instrucción.
Lo malo está que cuando creo esta linea en el programa me envia el error que ActiveSheet no esta declarado.
Intente hacerlo anteponiendo el TExcelApplication de la siguiente forma

xlapp.ActiveSheet.Pictures.Insert(ruta).select;

pero aqui me envia el arror de que Pictures no esta declarado.

¿Que me está faltando para solucionar el problema?
¿Hay que declarar ActiveSheet? ¿Como se haria?

Bicho 09-08-2006 19:40:56

Hola revísate éste hilo a ver si te ayuda a completar lo que te falta

Espero te sirva

Saludos

vicvil 09-08-2006 21:08:41

Ya lo habia visto
 
Gracias Bicho pero ya habia visto ese hilo. Pero no me responde a la pregunta de por que no reconoce el ActiveSheet.

roman 09-08-2006 21:28:20

Por eso no me gusta usar las componentes de la paleta Servers.

xlapp.ActiveSheet es de tipo IDispatch, o sea, una interfaz genérica. Así que debes hacer un moldeo para acceder a sus métodos y propiedades:

Código Delphi [-]
(xlapp.ActiveSheet as _WorkSheet).Pictures

Pero Pictures también es de tipo IDispatch y no tengo ni la más remota idea de como debe moldearse.

Sin embargo he podido hacer esto:

Código Delphi [-]
var
  Hoja: _WorkSheet;

begin
  ExcelApp.Workbooks.Add(EmptyParam, 0);
  Hoja := (ExcelApp.ActiveSheet as _WorkSheet);
  Hoja.Shapes.AddPicture('imagen.gif', 0, 1, 10, 10, 40, 60);
end;

esto es, usando la colección Shapes en lugar de Pictures. En este método los cuatro últimos parámetros son las coordenadas y dimensiones de la imagen: left, top, width, height. El segundo parámetro es para indicar si quieres la imagen copiada o sólo una referencia a ella (0 = copiada) y el tercer parámetro déjalo en 1.

// Saludos

vicvil 09-08-2006 22:40:43

Roman gracias esto si me resulto.


La franja horaria es GMT +2. Ahora son las 09:18:00.

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