PC SOFT

FORUMS PROFESSIONNELS
WINDEVWEBDEV et WINDEV Mobile

Accueil → WINDEV 2024 → importer les données d'un fichier excel
importer les données d'un fichier excel
Débuté par masdivers, 07 fév. 2006 17:25 - 3 réponses
Posté le 07 février 2006 - 17:25
Bonjour,

est-ce que quelqu'un pourrait m'aider sur ce sujet ?

Voici le problème :

j'ai importé les données d'un fichier excel grâce à la fonction himportetexte et tout c'est bien passé pour un fichier de type texte. Pour un second fichier, la partie date posait problème lors de la récupération. Sous Excel, je ne sais pas comment convertir automatiquement le champ date en AAAAMMJJ la seule chose que je puisse faire c'est AAAA-MM-JJ. Il y a sûrement une astuce, mais.... ???

Quelqu'un a-t'il déjà rencontré ce problème ? Si oui, merci pour toute aide que vous pourriez m'apporter.

Cordiales salutations
Posté le 07 février 2006 - 17:42
Bonjour
ChaineVersDate()
Code d'importation Excel

//Importation du fichier Excel

NomFichierXls = fSélecteur(WcheminRecup,"Materiel.XLS","Sélection d'un fichier xls","Excel"+TAB+"*.xls","xls")
//Si la séléction est annulée, arrêt de la procédure
SI NomFichierXls = "" ALORS RETOUR
//Import du fichier
//Ouverture du fichier
NumFichierXls = xlsOuvre(NomFichierXls)
//Si le fichier ne s'ouvre pas, message d'erreur
SI NumFichierXls = -1 ALORS
Erreur("Impossible d'ouvrir le fichier "+NomFichierXls+RC+...
"Veuillez vérifier le format de ce fichier")
RETOUR
FIN
HCréation(Matériel)
Sablier(Vrai)
Multitâche(100)
HGèreIntégrité(Faux)
HGèreDoublon(Faux)
//Nombre de lignes à importer
Iter = 0
NbLigneXls = xlsNbLigne(NumFichierXls)
//Boucle sur le nombre de ligne
// Prend le premier identifiant
POUR Iter = 2 A NbLigneXls
HRAZ(Matériel)
Matériel.IDMatériel=xlsDonnée(NumFichierXls,Iter,1)
Matériel.Nom_Mat=xlsDonnée(NumFichierXls,Iter,2)
Matériel.Dat_Ach=ChaîneVersDate(xlsDonnée(NumFichierXls,Iter,4))
Matériel.Dat_Sor=ChaîneVersDate(xlsDonnée(NumFichierXls,Iter,11))
Matériel.Pri_Ach=xlsDonnée(NumFichierXls,Iter,5)
Matériel.Dat_fin=ChaîneVersDate(xlsDonnée(NumFichierXls,Iter,7))
Matériel.Num_Ser=xlsDonnée(NumFichierXls,Iter,3)
Matériel.Garantie=xlsDonnée(NumFichierXls,Iter,6)
Matériel.Num_Int=xlsDonnée(NumFichierXls,Iter,1)
Matériel.Reference=xlsDonnée(NumFichierXls,Iter,2)
Matériel.Obs_Mat=""
HLitRecherche(Mat_Marque,Nom_Typ,xlsDonnée(NumFichierXls,Iter,9))
Matériel.IDMat_Marque=Mat_Marque.IDMat_Marque
Matériel.IDMat_Etat=5
HLitRecherche(Mat_Type,Nom_Typ,xlsDonnée(NumFichierXls,Iter,8))
Matériel.IDMat_Type=Mat_Type.IDMat_Type
Matériel.IDConfMat=0
HLitRecherche(Fournisseur,Societe,xlsDonnée(NumFichierXls,Iter,10))
Matériel.IDFournisseur=Fournisseur.IDFournisseur
Matériel.Num_Auto=2
HAjoute(Matériel,hFixeIdAuto)
//Mis à jour de la jauge
Jauge(Iter,NbLigneXls,"Importation en cours Matériel "+Iter+"/"+NbLigneXls)
FIN
//Fermeture du fichier xls
xlsFerme(NumFichierXls)
//Réaffichage de la table
Jauge()

Sablier(Faux)
HGèreDoublon(Vrai)
HGèreIntégrité(Vrai)
Message("Terminé")
Posté le 07 février 2006 - 17:53
utilise la fonction ChaineVersDate

exemple:

---------------------------------------------------------
Res=ChaîneVersDate("2001-11-04","AAAA-MM-JJ")
----------------------------------------------------------

résultat la variable res reçoit "2001104"

ps: res est une date
Posté le 07 février 2006 - 18:07
Merci Alain,

Il faut que je te précise que le fichier Excel comporte les mêmes rubriques que le fichier décrit sous mon projet Windev.

Est-ce que cela change les données car hcréation... ???

Merci pour ta réponse,

Cordialement