Как вставить картинку в Excel

Материал из DRKB


WS это Worksheet (лист таблицы):

WS.Shapes.AddPicture('C:\Pictures\Small.Bmp', EmptyParam, EmptyParam, 10, 160, EmptyParam, EmptyParam);

или

var
  Pics: Excel2000.Pictures; {or whichever Excel}
  Pic: Excel2000.Picture;
  Pic: Excel2000.Shape;
  Left, Top: integer;
begin
  Pics := (WS.Pictures(EmptyParam, 0) as Pictures);
  Pic := Pics.Insert('C:\Pictures\Small.Bmp', EmptyParam);
  Pic.Top := WS.Range['D4', 'D4'].Top;
  Pic.Left := WS.Range['D4', 'D4'].Left;
end;


EmptyParam это особый Variant (описанный в Variants.pas в D6+). Однако, в некоторых версиях Delphi могут быть проблемы. Это должно сработать:

uses
  OfficeXP;

begin
  WS.Shapes.AddPicture('H:\Pictures\Game\Hills.bmp', msoFalse, msoTrue, 10, 160, 100, 100);
end;


Но возможно, что придется использовать TBitmap для определения нужного размера картинки.


Source: Delphi Knowledge Base: http://www.baltsoft.com/
ID: 04385