PC SOFT

FORUMS PROFESSIONNELS
WINDEVWEBDEV et WINDEV Mobile

Accueil → WINDEV 2024 → Recuperer image dans un fichier excel
Recuperer image dans un fichier excel
Débuté par Basturk, 17 oct. 2017 18:44 - 8 réponses
Membre enregistré
72 messages
Popularité : +2 (2 votes)
Posté le 17 octobre 2017 - 18:44
Salut cher tous,

J'ai un fichier excel avec deux colonnes: nom et image.

Je souhaiterais savoir comment récupérer les images.

Le code ci-dessous ne fonctionne pas quand il s'agit de récupérer les images
.
sNom_entreprise est une chaîne
logo est une Image
sLocation_code est une chaîne
//x est une chaîne
t est un entier = 0
nLigne est un entier = 2
cMonFicxls est xlsDocument = xlsOuvre("C:\Users\hp\Documents\TOUTES LES ENTREPRISES.xlsx")
SI ErreurDétectée() ALORS
Erreur("Un fichier d'initialisation n'a pas été trouvé!")
SINON
TANTQUE nLigne <= 207
logo = xlsDonnée(cMonFicxls,nLigne,1)
sLocation_code = xlsDonnée(cMonFicxls,nLigne,2)
sNom_entreprise = xlsDonnée(cMonFicxls,nLigne,3)
iAperçu(iPDF,"C:\Message\Message_"+sNom_entreprise)
iImprimeEtat(ETAT_APERCU_CHEQUES_VERSO_BIENVENU,logo,sLocation_code)
nLigne++
FIN
FIN


Merci!
Membre enregistré
326 messages
Popularité : +15 (19 votes)
Posté le 18 octobre 2017 - 16:57
Bonjour,
Essayer : logo = dChargeImage(xlsDonnée(cMonFicxls,nLigne,1))

Michel.
Membre enregistré
72 messages
Popularité : +2 (2 votes)
Posté le 18 octobre 2017 - 18:43
Merci pour ton aide @Mlion,

voici l'erreur que ca génère:
Vous avez appelé la FONCTION dChargeImage.
L'élément '' n'a pas été trouvé.
Membre enregistré
326 messages
Popularité : +15 (19 votes)
Posté le 19 octobre 2017 - 09:32
Bonjour.
Question : dans le fichier Excel est-ce une image ou le chemin de cette dernière ?
Michel.
Membre enregistré
72 messages
Popularité : +2 (2 votes)
Posté le 19 octobre 2017 - 11:33
Bonjour @Mlion,

mlion a écrit :
Bonjour.
Question : dans le fichier Excel est-ce une image ou le chemin de cette dernière ?
Michel.


c'est une image
Membre enregistré
13 messages
Posté le 19 octobre 2017 - 12:08
Bonjour,

Je pense que les images 'flottent' au dessus d'une cellule et donc qu'elles ne sont pas directement rattachées à une ligne ou a une colonne.
Une piste serait celle là :

https://forum.pcsoft.fr/fr-FR/pcsoft.fr.windev/209503-importer-images-depuis-excel-vers-hyperfilesql/read.awp

Cordialement
Membre enregistré
72 messages
Popularité : +2 (2 votes)
Posté le 19 octobre 2017 - 14:03
Mat33 a écrit :
Bonjour,

Je pense que les images 'flottent' au dessus d'une cellule et donc qu'elles ne sont pas directement rattachées à une ligne ou a une colonne.
Une piste serait celle là :

https://forum.pcsoft.fr/fr-FR/pcsoft.fr.windev/209503-importer-images-depuis-excel-vers-hyperfilesql/read.awp

Cordialement

je le pensais aussi. J'ai alors rectifier le tire en suivant ce site:
http://www.commentcamarche.net/forum/affich-7637932-inserer-une-image-dans-une-cellule-sur-excel

Mais hélas ce n'était pas ça.

En revanche le lien que tu as donné semble correspondre à mes recherches. Je vais l'analyser plus longuement et voir comment l'intégrer.


Merci !
Posté le 27 octobre 2017 - 17:06
Bonjour,

On utilise EPPlus pour manipuler les fichiers Excel. C'est assez puissant.
Tu y trouveras peut être ton bonheur.
Membre enregistré
946 messages
Popularité : +102 (110 votes)
Posté le 01 juin 2019 - 21:14
Bonjour,
Le post date de 2017 mais n'avait, sauf erreur de ma part, pas eu une réponse avec du code WD.
Voici ce que j'ai trouvé :

NombreDeFeuille, i, NbrImage est un entier
PictureName est une chaîne
xl, MyWorksheets est un objet automation dynamique
MyPicture est une Image


xl = allouer un objet automation "Excel.Application"
IF xl = Null THEN
Trace("Erreur 'Excel.application' n'est pas installé sur ce poste !")
RETOUR

END
xl>>Visible = True
xl>>WorkBooks>>Open(ComplèteRep(fRepExe())+"excel avec deux images.xlsx")

NombreDeFeuille = xl>>Sheets>>Count
FOR i=1 _TO_ NombreDeFeuille
Trace(xl>>Sheets(i)>>Name)
END

WHEN EXCEPTION IN
MyWorksheets = xl>>Worksheets("F2")

MyWorksheets>>Activate

NbrImage = MyWorksheets>>Shapes>>Count
Trace(NbrImage)

IF NbrImage > 0 THEN
FOR i=1 _TO_ NbrImage
MyWorksheets>>Shapes(i)>>Select
MyWorksheets>>Shapes(i)>>CopyPicture(xlScreen, xlBitmap) // copie dans le presse papier l'image
IF PressePapierFormat(ppfBitmap) THEN
IF PressePapier(MyPicture) THEN
PictureName = ChaîneConstruit("d:\temp\extractions\pic_%1.jpg", i)
dSauveImageJPEG(MyPicture, PictureName)
END
END
END
END
DO
Erreur("Oup'sss")
END


Je récupères bien mes 4 images de la seconde feuille nommée F2