PC SOFT

FOROS PROFESIONALES
WINDEVWEBDEV y WINDEV Mobile

Inicio → WINDEV 2025 → importation excel vers windev
importation excel vers windev
Iniciado por dev4it, 25,abr. 2019 15:15 - 10 respuestas
Miembro registrado
6 mensajes
Publicado el 25,abril 2019 - 15:15
bonjour!
j’écris un programme d'importation d'excel vers Windev ça marche sauf que je veux éliminer la ligne des entêtes avant d’appeler ma fonction d'importation. j'ai tout tenté mais rien jusque là. si quelqu'un à une solution à me proposer ce serait d'une grande aide
Miembro registrado
215 mensajes
Publicado el 25,abril 2019 - 16:16
Bonjour,
Peux tu être plus précis en donnant ton code pour l"importation
Publicado el 25,abril 2019 - 16:29
Bonjour,

commence simplement l'importation à la 2ème ligne du fichier ?
Si c'est bien de cette 1ère ligne (qui contient généralement les entêtes de chaque colonne) dont tu parles.

Dominique
Publicado el 25,abril 2019 - 16:40
Il te suffit simplement de commencer l'importation à la ligne 2 (si la
ligne d'entête est la ligne 1)
Miembro registrado
6 mensajes
Publicado el 25,abril 2019 - 17:03
merci dominique, eric et thierry de vos réponses!
en fait je fais appel à la fonction himportexls et si j'ignore la premiere ligne, il enregistre dans ma table windev en commencant par l'enregistrement numero 2 ce qui fausse considerablement mes resulatat de recherche.
voici le code :

sListeFichier est une chaîne
nomtable est une chaîne

sListeFichier = fListeFichier(Répertoire..Valeur+"\*.xlsx")
//Trace(sListeFichier)
POUR TOUTE CHAÎNE sFic DE sListeFichier SEPAREE PAR RC
POUR TOUTE CHAÎNE nomtable DE sFic SEPAREE PAR RC
nomtable=ExtraitChaîne(nomtable,rangDernier,"\",DepuisFin)
//éliminer l'extension dans le nom de la table
nomtable=ExtraitChaîne(nomtable,rangPremier,".",DepuisFin)
bVerifespace est un booléen= Contient(nomtable," ")
IF bVerifespace=Vrai THEN
nomtable=Remplace(nomtable," ","_")
//Info(nomtable)
END
IDFicXLS est un xlsDocument
UnFichier est une chaîne
UnFichier = sFic
IDFicXLS = xlsOuvre(UnFichier, xlsEcriture)
ToastAffiche("importation de la table "+nomtable)
SI ErreurDétectée = Faux ALORS
nAzz est un entier = xlsFeuilleEnCours(IDFicXLS)
verif est un booléen=HFichierExiste(nomtable)
IF verif=Vrai THEN
HSupprimeTout(nomtable)
bVerifImport est un booléen=HImporteXLS(nomtable,sFic,1,"",hImpIgnorePremièreLigne,JAUGE_importation)
IF bVerifImport=Faux THEN
Erreur("erreur detectée !"+HErreurInfo)
END
ELSE
Info("ce fichier n'existe pas dans la base de donnée !!")
END

SINON
Info("erreur détecter ")
FIN
FIN
FIN
Info("importation effectuée avec succés")
Mensaje modificado, 25,abril 2019 - 17:05
Miembro registrado
6 mensajes
Publicado el 25,abril 2019 - 17:14
j'explique un peu mon code, j'exporte depuis une autre application toutes les tables dans un répertoire puis dans ma fenêtre d'importation j'ai mis un champ sélecteur de répertoire qui part rechercher le dossier contenant les tables(il yen a beaucoup) j'extrais les noms des fichiers (qui correspondent aux tables que j'ai en base) puis je fais l'importation. en gros c'est ça l’idée
Mensaje modificado, 25,abril 2019 - 17:14
Miembro registrado
953 mensajes
Publicado el 25,abril 2019 - 17:27
...
Mensaje modificado, 25,abril 2019 - 17:33
Miembro registrado
6 mensajes
Publicado el 25,abril 2019 - 17:33
bonjour christophe!
je l'ai fais et ça importe les données mais çà commence à partir de l'identifiant numéro 2 :( lors de l'enregistrement des données et c'est pas ce que je veux !
Mensaje modificado, 25,abril 2019 - 17:33
Miembro registrado
953 mensajes
Publicado el 25,abril 2019 - 17:34
my bad, pas lu votre code correctement, ( vous avez l'option dans le forum [ C O D E ] sans les espaces ) pour mettre en forme un peu le code.

Mais vos fichiers possèdent donc plus d'une ligne d'entête ?

Le nombre de ligne d'entête est variables par fichiers ?
Miembro registrado
6 mensajes
Publicado el 25,abril 2019 - 17:43
sListeFichier est une chaîne
nomtable est une chaîne

sListeFichier = fListeFichier(Répertoire..Valeur+"\*.xlsx")
//Trace(sListeFichier)
POUR TOUTE chaîne sFic de sListeFichier SEPAREE PAR RC
POUR TOUTE chaîne nomtable de sFic SEPAREE PAR RC
nomtable=ExtraitChaîne(nomtable,rangDernier,"\",DepuisFin)
//éliminer l'extension dans le nom de la table
nomtable=ExtraitChaîne(nomtable,rangPremier,".",DepuisFin)
bVerifespace est un booléen= Contient(nomtable," ")
IF bVerifespace=Vrai THEN
nomtable=Remplace(nomtable," ","_")
//Info(nomtable)
END
IDFicXLS est un xlsDocument
UnFichier est une chaîne
UnFichier = sFic
IDFicXLS = xlsOuvre(UnFichier, xlsEcriture)
ToastAffiche("importation de la table "+nomtable)
SI ErreurDétectée = Faux ALORS
nAzz est un entier = xlsFeuilleEnCours(IDFicXLS)
verif est un booléen=HFichierExiste(nomtable)
IF verif=Vrai THEN
HSupprimeTout(nomtable)
bVerifImport est un booléen=HImporteXLS(nomtable,sFic,1,"",hImpIgnorePremièreLigne,JAUGE_importation)
IF bVerifImport=Faux THEN
Erreur("erreur detectée !"+HErreurInfo)
END
ELSE
Info("ce fichier n'existe pas dans la base de donnée !!")
END

SINON
Info("erreur détecter ")
FIN
FIN
FIN
Info("importation effectuée avec succés")
Miembro registrado
6 mensajes
Publicado el 25,abril 2019 - 17:49
:merci::merci: je savais pas !!
non il ne contient qu'une seule ligne pour l'entete et j'aimerai pas dire aux utilisateurs finaux de supprimer manuellement les entetes lors de l'exportation vers excel.

_Le nombre de ligne d'entête est variables par fichiers ? oui ;)