使用Delphi在Excel工作表的每一行上插入图像

时间:2010-08-16 02:10:48

标签: delphi excel excel-vba delphi-6 vba

我的Delphi 6程序需要在Excel工作表的每一行上放置一个图像。 我可以将图片插入固定位置,并将其从另一篇文章中读取。

procedure insertImages(ActiveSheet: OleVariant; ImageFilePath: String; ImageHeight, PictureTop, PictureLeft: Integer);
var
  Picture: OleVariant;
begin
    try
       Picture := ActiveSheet.Pictures.Insert(ImageFilePath);
       Picture.Width := ImageHeight * Picture.Width /Picture.Height;
       Picture.Height := ImageHeight;
       Picture.ShapeRange.Left := PictureLeft;
       Picture.ShapeRange.Top := PictureTop;
       Picture.Placement := xlMove;
    except
    end; //try
end; //insertImages;

上面的代码工作正常,但是我无法通过PictureTop和PictureLeft参数来使它在每行的第二列上有不同的图像?

如何获取特定单元格的Top和Left值? 或者有更好的方法吗?

请帮忙。

1 个答案:

答案 0 :(得分:4)

例如,如果您使用;

ActiveSheet.Cells[2, 2].Select;
ActiveSheet.Pictures.Insert(ImageFileName);

那么你的图片的顶部等于Cell [2,2]的顶部,而图片的左边等于Cell [2,2]的左边