IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

API, COM et SDKs Delphi Discussion :

[D6] Comment insérer une image dans Excel ?


Sujet :

API, COM et SDKs Delphi

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mars 2007
    Messages : 12
    Points : 11
    Points
    11
    Par défaut [D6] Comment insérer une image dans Excel ?
    Bonjour,

    j'utilise un TExcelApplication pour insérer des données dans un fichier Excel existant, le sauver et l'ouvrir, ce qui fonctionne très bien.
    Par contre ce que je voudrais faire, c'est insérer une image dans ma feuille.

    Voici le code utilisé :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    MonClasseur1:=ExcelApplication1.Workbooks.Open(NomFichierSource,False,False,
    EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,
    EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,0);
     
    ExcelApplication1.Visible[0]:=False;
     
    MaFeuille:=MonClasseur1.Worksheets[1] as _worksheet;
    Merci d'avance de votre aide.

  2. #2
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mars 2007
    Messages : 12
    Points : 11
    Points
    11
    Par défaut
    Bon, n'ayant visiblement pas de solution avec le composant TExcelApplication, je me suis rabattu sur un lien OLE pour insérer mon image dans mon fichier Excel.

    Voici le code utilisé :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    Var
       vMSExcel,vXLWorkbook,vWorksheet : Variant;
    begin
         try
             vMSExcel:=GetActiveOleObject('Excel.Application');
         except
             vMSExcel:=CreateOleObject('Excel.Application');
         end;
     
         vXLWorkbook:=vMSExcel.Workbooks.Open('C:\Fichier_Excel.xls');
         vWorksheet:=vXLWorkbook.WorkSheets[1];
     
         vWorksheet.Pictures.Insert('C:\image1.jpg').Select;
         vMSExcel.visible := true;
    end;
    Par contre je voudrais pouvoir positionner mon image ainsi que la dimensionner.
    Est-ce que quelqu'un saurait comment faire ?

    Merci d'avance

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mars 2007
    Messages : 12
    Points : 11
    Points
    11
    Par défaut Solution
    Je sais, je fait les questions et les réponses, mais je vous livre, si ça peut intéresser quelqu'un, la solution au problème posé :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    vMSExcel.Selection.Top:=1;
    vMSExcel.Selection.Height:=350;
    Il faut ne pas oublier de bien faire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    vWorksheet.Pictures.Insert('C:\image1.jpg').Select;
    ça permet d'avoir l'image en sélection dans Excel.

    Voilà, bonne journée à tous.

  4. #4
    Expert éminent
    Avatar de Lung
    Profil pro
    Analyste-programmeur
    Inscrit en
    Mai 2002
    Messages
    2 680
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Analyste-programmeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 680
    Points : 7 102
    Points
    7 102
    Par défaut
    Merci pour la solution.
    Ca peut toujours servir ...


  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mars 2007
    Messages : 12
    Points : 11
    Points
    11
    Par défaut
    Pour info et surtout pour clore le chapitre:

    Dans le précédent post, j'ai indiqué comment redimensionner une image, mais la redimension de la hauteur va automatiquement faire une redimension proportionnelle de la largeur.
    Donc si vous voulez avoir entièrement la main sur la taille de l'image mettez :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    vWorksheet.Shapes.AddPicture('C:\Image.jpg', False, True, vMSLeft, vMSTop, vMSWidth, vMSHeight);
    Pramètres : AddPicture(ImageFile, LinkToFile, SaveWithDocument, Left, Top, Width, Height)

    à la place de :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    vWorksheet.Pictures.Insert('C:\image1.jpg').Select;
    Pour plus d'info reportez-vous à VB.

    A bientôt.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [VB6] Insérer une image dans Excel
    Par ShortcutZ dans le forum VB 6 et antérieur
    Réponses: 9
    Dernier message: 20/04/2006, 15h39
  2. Réponses: 10
    Dernier message: 08/02/2006, 19h42
  3. Comment insérer une image dans un graphique?
    Par Leclair2000 dans le forum Composants VCL
    Réponses: 3
    Dernier message: 23/05/2005, 09h29
  4. Comment insérer une image dans une cellule d'un TDrawGrid ?
    Par kanux dans le forum Composants VCL
    Réponses: 4
    Dernier message: 15/01/2005, 18h58
  5. [Crystal Reports 9] comment insérer une image dans Détails
    Par VVE dans le forum SAP Crystal Reports
    Réponses: 2
    Dernier message: 22/10/2003, 17h06

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo