Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Incrustar PDF en Excel desde delphi (https://www.clubdelphi.com/foros/showthread.php?t=96466)

afxe 31-10-2023 20:23:20

Incrustar PDF en Excel desde delphi
 
Hola a todos. No termino de encontrar cómo hacer esto: En Excel, en la pestaña INSERTAR, grupo TEXTO, icono OBJETO me permite incrustar un documento (un PDF en este caso) como Icono (hay que marcar un check) en la posición que se quiera.

Un cliente me ha solicitado que los artículos pedidos a proveedores se generen en formato Excel y que incruste para cada artículo la ficha técnica del mismo (que están en formato PDF).

He visto que algo así funciona... pero no sé cómo trasladarlo a Delphi:

Código:


obj = sheet1.api.OLEObjects()
obj.Add(ClassType=None, Filename=os.path.abspath(path), Link=False, DisplayAsIcon=True, IconFileName='test.ico', IconIndex = 0, IconLabel='test')
sheet1.save(os.path.abspath(new_path))

Para Visual Basic:


Código:


Worksheets(1).OLEObjects.Add ClassType:="Forms.CommandButton.1", _
 Link:=False, DisplayAsIcon:=False, Left:=40, Top:=40, _
 Width:=150, Height:=10


afxe 02-11-2023 11:51:17

Cosas que estoy probando:


Código:

    Excel  := CreateOleObject('Excel.Application');
    ExcelDoc  := Excel.Workbooks.Add;
    WS    := ExcelDoc.ActiveSheet;
    Excel.Visible := true;

    ws.Shapes.AddPicture('c:\config\logo.bmp', False, True, 0, 0, 100, 50);

    ws.OleObjects.Add('Acrobat.Document.DC', 'C:\config\test.pdf', False, True, 'c:\Config\test.ico', 0, 'PDF', 100, 100, 50, 50);

Me devuelve este error: "No se puede obtener la propiedad Add de la clase OLEObjects"

¿Alguien ha conseguido insertar objetos o PDF's en una hoja excel?

afxe 02-11-2023 12:49:14

Resuelto
 
Resuelto... estaba empecinado en indicar el ClassType del objeto... no es necesario:
Código:

var
  Excel, ExcelDoc, WS, oPdf : Variant;
begin

    coinitialize(nil);

    Excel        := CreateOleObject('Excel.Application');
    ExcelDoc      := Excel.Workbooks.Add;
    WS            := ExcelDoc.ActiveSheet;

    oPdf := ws.OleObjects.Add(null, 'C:\config\test.pdf', True, True, 'c:\Config\test.ico', 0, 'PDF', 0, 0, 100, 20);
    oPdf.Width := 100;
    oPdf.Height := 20;

end;


ElKurgan 03-11-2023 09:53:54

Gracias por compartir la solución

Saludos


La franja horaria es GMT +2. Ahora son las 02:39:05.

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