PC SOFT

FORUMS PROFESSIONNELS
WINDEVWEBDEV et WINDEV Mobile

Accueil → WINDEV 23 → Import fichier Excel données français/arabe
Import fichier Excel données français/arabe
Débuté par hadaf, 01 aoû. 2013 11:27 - 10 réponses
Membre enregistré
49 messages
Posté le 01 août 2013 - 11:27
Bonjour
je dispose d'un fichier excel comportant des données écrites en français et en arabe.
Après l'importation vers table du dit fichier, les données en arabe s'affichent sous forme de ??????
Que faire pour remédier ?
Merci d'avance.

--
BN_DEV
Membre enregistré
1 115 messages
Popularité : +11 (13 votes)
Posté le 01 août 2013 - 20:39
Salut Hadaf,

Utilises-tu bien des champs UNICODE ?
Je pense que tu es en ANSI d'ou les caractères ??????

L'unicode te permet justement d'utiliser les caractères spéciaux comme l'Arabe, le chinois, etc.

A+
Daryl
Membre enregistré
49 messages
Posté le 02 août 2013 - 16:17
merci Daryl de m'avoir répondu
mais comment utiliser l'unicode dans la description du projet il y a plusieurs langue même l'arabe mais c donne rien .

--
BN_DEV
Membre enregistré
1 115 messages
Popularité : +11 (13 votes)
Posté le 03 août 2013 - 10:36
Salut Hadaf,

Dans la description de la configuration de ton projet tu as un onglet "Unicode" sur cet onglet tu prends l'option "Utiliser des chaînes UNICODE en exécution" Cela te permet d'utiliser tout ton projet en unicode,

Si tu as besoin de juste avoir l'unicode pour ton excel, tu peux déclarer un chaîne en unicode, sans pour cela modifier la description de ta configuration.

sArabe est une chaîne UNICODE
nIdXls est un xlsDocument
sFichierXls est une chaîne = "MonFichierExcel.xls"

nIdXls = xlsOuvre(sFichierXls, xlsLecture)
SI ErreurDétectée ALORS
Erreur("Problème d'ouverture du fichier (" + sFichierXls + ").")
SINON
// Imaginons que ton texte en Arabe se trouve sur la ligne 1, colonne 2
sArabe=xlsDonnée(nIdXls, 1, 2)
FIN
// Ici tu devrais voir tes caractères correctement
Info(sArabe)


Bon Dev
Daryl
Membre enregistré
49 messages
Posté le 03 août 2013 - 17:32
salut Daryl,
j essayé la configuration du projet c a marcher très bien .
mais je veux seulement l’Unicode pour excel , le code en haut transforme les chaines ?????? en 0000
voilà mon code
//supprimer le contenu de la table
TableSupprimeTout(TABLE_import)
// mise en place d'un code pour importer les données d'un fichier EXCEL vers une table WINDEV
t est un entier
sArabe est une chaîne UNICODE
MaFeuille est un xlsDocument
sNomFichierXls est une chaîne
sNomFichierXls = fSélecteur("", "", ...
"Sélectionnez un fichier...", ...
"Tous fichiers (*.*)"+TAB+"*.*", "*", fselOuvre + fselExiste)
SI sNomFichierXls = "" ALORS RETOUR
MaFeuille = xlsOuvre(sNomFichierXls)

nligne est un entier
nligne = xlsNbLigne(MaFeuille,Faux)

// nous partirons de la ligne 2 pour ne pas prendre en compte les entêtes de colonne.
POUR t = 12 A nligne

TableAjouteLigne(TABLE_import,sArabe=xlsDonnée(MaFeuille,t,5,Vrai),sArabe=xlsDonnée(MaFeuille,t,4,Vrai),sArabe=xlsDonnée(MaFeuille,t,3,Vrai),xlsDonnée(MaFeuille,t,2,Vrai),xlsDonnée(MaFeuille,t,1,Vrai))

FIN


--
BN_DEV
Message modifié, 03 août 2013 - 17:34
Posté le 18 décembre 2013 - 15:21
merci ça marche :merci:
Membre enregistré
1 115 messages
Popularité : +11 (13 votes)
Posté le 18 décembre 2013 - 20:43
Salut Hadaf,

Pour moi ta variable sArabe ne sert à rien car dans ton TableAjouteLigne() tu ne fais pas de conversion des données UTF8 de l'Excel vers l'Unicode.
Tu ne fais qu'attribuer une valeur de type UTF-8 dans une variable de type Unicode.

Il faut donc que tu fasses la conversion, pour cela utilise la fonction UTF8VersUnicode().
Essaie le code suivant

// nous partirons de la ligne 2 pour ne pas prendre en compte les entêtes de colonne.
POUR t = 2 A nligne

TableAjouteLigne(TABLE_import,UTF8VersUnicode(xlsDonnée(MaFeuille,t,5,Vrai)),UTF8VersUnicode(xlsDonnée(MaFeuille,t,4,Vrai)),UTF8VersUnicode(xlsDonnée(MaFeuille,t,3,Vrai)),UTF8VersUnicode(xlsDonnée(MaFeuille,t,2,Vrai)),UTF8VersUnicode(xlsDonnée(MaFeuille,t,1,Vrai)))

FIN


A+
Daryl

--
http://www.concept4u2.com
Posté le 20 mars 2014 - 11:10
Svp, je n'arrive pas à importer des données arabe existant dans un fichier excel, sachant que mon application affiche l'arabe et tout, mon soucis et seulement de l'importation excel, ça affiche des "????????????"
Merci
Posté le 16 février 2018 - 12:19
mohezi a écrit :
> merci ça marche :merci:
Posté le 18 février 2018 - 15:35
salut quelle code t4 utilisé pour régler le probleme ??
Membre enregistré
1 message
Posté le 12 juillet 2018 - 16:18
Salut Daryl
je dispose d'un fichier excel comportant des données écrites en arabe.
voilà mon code:
***************************
//Importation de la liste des proffesseurs
// SI OuiNon("Voulez-vous réellement lancer l'importation du fichier?") ALORS
IdFichierXLS est un xlsDocument
FichierExcel est une chaîne
i,NbLigne est un entier
FichierExcel=fSélecteur("", "", "Sélection d'un fichier XLS","Fichier XLS" + TAB + "*.XLS", "XLS", fselOuvre+fselExiste)

SI fFichierExiste(FichierExcel) ALORS
IdFichierXLS = xlsOuvre(FichierExcel)
NbLigne = xlsNbLigne(IdFichierXLS)
HOuvre(exceel)

// Transfaire des proffesseurs
POUR i=2 A NbLigne
SI IdFichierXLS <> -1 ALORS
Info(xlsDonnée(IdFichierXLS ,1,2))
exceel.IDexceel=xlsDonnée(IdFichierXLS,i,1,Vrai)
exceel.nom= AnsiVersUnicode(xlsDonnée (IdFichierXLS,i,2,Vrai))
exceel.prenom= xlsDonnée (IdFichierXLS,i,3,Vrai)
exceel.date= ChaîneVersDate(xlsDonnée (IdFichierXLS,i,4,Vrai),"aaaammjj")
HAjoute(exceel)
FIN
FIN
Info("Importation de la liste des Communes terminer: ")
SINON
Erreur("Le fichier Excel Clients.xls n'existe pas")
FIN
**********************
Après l'importation vers une base de donnée de windev 17 , les données en arabe s'affichent sous forme de ??????
Que faire pour remédier ?
Merci d'avance