2010-08-16 6 views
1

Mon programme Delphi 6 doit placer une image sur chaque ligne de ma feuille Excel. Je pourrais insérer une image à une position fixe avec quelque chose que je lis d'un autre poste.Insérer une image sur chaque ligne dans une feuille Excel avec Delphi

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; 

Le code ci-dessus fonctionne très bien, mais je de la difficulté à passer le paramètre PictureTop et PictureLeft pour le rendre donc il est différent image sur la 2e colonne de chaque ligne?

Comment puis-je obtenir les valeurs Haut et Gauche pour une cellule spécifique? Ou y a-t-il une meilleure façon de faire cela?

Aidez-nous s'il vous plaît.

Répondre

4

Par exemple Si vous utilisez;

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

puis le haut de votre image égale haut de la cellule [2, 2] et la gauche de l'image est égale à gauche de la cellule [2, 2]

+0

Salut, juste essayé, mais en quelque sorte dans ma boucle de dix dossiers, les dix Les images sont insérées au même endroit de ma feuille de calcul qui se chevauchent. Et n'est même pas sur la bonne position de mon premier disque. Je ne sais pas pourquoi. Il semble que le "select" ne fonctionne pas ou que le fichier Pictures.Insert() ne soit pas inséré par rapport à la cellule active. – Snackmoore

+0

Je viens de tester et cela a fonctionné comme prévu ... – SimaWB

+0

@Snackmoore - vous avez supprimé les instructions 'Picture.ShapeRange.Left/Top' de votre procédure, non? –

Questions connexes