2010-08-16 24 views
1

我的Delphi 6程序需要在我的Excel Sheet的每一行上放置一個圖像。 我可以插入圖片到一個固定的位置,我從另一篇文章中讀到的東西。使用Delphi在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參數,使其所以在每一行的第2列不同的圖像的麻煩嗎?

如何獲取特定單元格的頂部和左側值? 還是有更好的方法來做到這一點?

請幫忙。

回答

4

例如,如果您使用;

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

那麼你的圖片頂級等於電池的頂部[2,2]和圖片的左邊等於離開細胞[2,2]

+0

嗨,只是嘗試,但不知何故,我的十個記錄循環,全部十圖像碰巧插在我的工作表上相互重疊的相同位置上。甚至不在我的第一張唱片的正確位置上。不知道爲什麼。它看起來像「選擇」不工作或Pictures.Insert()不插入相對於活動單元格。 – Snackmoore 2010-08-16 07:29:36

+0

我剛剛測試過,它按照我的預期工作...... – SimaWB 2010-08-16 08:51:26

+0

@Snackmoore - 你已經從程序中刪除了'Picture.ShapeRange.Left/Top'語句,對吧? – 2010-08-16 11:12:09

相關問題