Page 1 of 1

Insertar imagen en hoja de excel

Posted: Fri Apr 12, 2019 4:22 pm
by edufloriv
Buenas tardes a todos,

Necesito insertar una imagen en una hoja de excel, buscando en la red encontré código en VBA pero no encuentro su equivalente, hasta ahora lo tengo asi:
PROC ListaDePreciosXLS

PRIVATE oExcel
PRIVATE oWorkBook
PRIVATE oHoja

oExcel := CreateObject( "Excel.Application" ) // HMG 3
oExcel:Visible := .F.
oExcel:DisplayAlerts := .F.
oWorkBook := oExcel:WorkBooks:Add()

// Seleccion de hoja
nSheets := oExcel:Sheets:Count()
IF nSheets = 0
oExcel:Sheets:Add()
ELSE
oExcel:Sheets(1):Select()
ENDIF
oHoja := oExcel:ActiveSheet
oHoja:Cells:Font:Name := "Arial"
oHoja:Cells:Font:Size := 12
oHoja:Name := "Lista"

oHoja:Range("A1"):Select // <- AQUI ME LANZA ERROR AL COMPILAR : Error E0020 Incomplete statement or unbalanced delitmiters
oHoja:Pictures:Insert("imagen\logo-lista.jpg")
También encontré esto para ajustar la imagen a un tamaño fijo pero no sé como aplicarlo en HMG :
.ShapeRange.LockAspectRatio = msoFalse
.ShapeRange.Height = 100
.ShapeRange.Width = 100
Agradeceré su ayuda con código ejemplo para manejo de imágenes en excel.


Reciban un cordial saludo de mi parte.


Att.

Re: Insertar imagen en hoja de excel

Posted: Fri Apr 12, 2019 5:10 pm
by edufloriv
Saludos amigos,

Para informarles que ya conseguí insertar la imagen así:

Code: Select all

PROC ListaDePreciosXLS

PRIVATE oExcel
PRIVATE oWorkBook
PRIVATE oHoja

   oExcel := CreateObject( "Excel.Application" )  // HMG 3
   oExcel:Visible       := .F.
   oExcel:DisplayAlerts := .F.
   oWorkBook := oExcel:WorkBooks:Add()

// Seleccion de hoja
   nSheets := oExcel:Sheets:Count()
   IF nSheets = 0
      oExcel:Sheets:Add()
   ELSE
      oExcel:Sheets(1):Select()
   ENDIF
   oHoja := oExcel:ActiveSheet
   oHoja:Cells:Font:Name := "Arial"
   oHoja:Cells:Font:Size := 12
   oHoja:Name := "Lista"

   oHoja:Rows( 1 ):RowHeight := 60
   PathImagen := SUBSTR(GetCurrentFolder(),1,1)+':\eddocs\hmgcom\motorep\imagen\logo-lista.jpg'
   oHoja:Shapes:AddPicture( PathImagen , .f., .t., 5, 5,  510, 60)

// Se formatea y muestra el excel
   oHoja:PageSetup:LeftMargin     := 5
   oHoja:PageSetup:RightMargin    := 5
   oHoja:PageSetup:TopMargin      := 5
   oHoja:PageSetup:BottomMargin   := 5
   oHoja:PageSetup:Orientation    := 1
   oHoja:PageSetup:PaperSize      := 9  //A4
   oHoja:PageSetup:Zoom           := .F.

   oExcel:Visible       := .T.

RETURN
El truco está en la ubicación de la imagen debe estar completa desde el drive, intente con "imagen\logo-lista.jpg" pero lanza un error informando que no pudo ubicar el archivo.

Espero les sirva, saludos y muchas gracias.


Att.

Re: Insertar imagen en hoja de excel

Posted: Fri Apr 12, 2019 5:23 pm
by andyglezl
Gracias por el dato...