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

EDI, CMS, Outils, Scripts et API PHP Discussion :

Importer des données Excel: Probleme Encodage Caractères Arabe


Sujet :

EDI, CMS, Outils, Scripts et API PHP

  1. #1
    Membre à l'essai
    Inscrit en
    Octobre 2007
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 5
    Par défaut Importer des données Excel: Probleme Encodage Caractères Arabe
    Bonjour,
    J'essaye d'importer une liste de personnes situé dans un fichier Excel 2003 (*xsl) pour les stocker dans une table mysql.
    j'ai utilisé l'outil Excel_Reader (sourceforge) et cela fonctionne parfaitement avec des données en caractères latin.

    Le problème: c'est que les noms dans le fichier Excel sont en Arabe !

    j'ai utilisé l'encodage UTF-8 Unicode pour ma table Mysql, j'ai testé une insertion via phpmyadmin et ca a marché en tapant le text en arabe.

    j'ai placé dans mon script PHP l'instruction:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     $data->setOutputEncoding('UTF-8');
    mais en sortie j'ai un affichage du genre :

    Numéro | Nom | Date de naissance

    1 | أيت عامر امال ليديا | 10/06/1996
    2 | بخوش ندى | 14/09/1997
    3 | بربار يامندة نهال | 23/09/1998
    j'ai essayé de copier le contenue du fichier Excel et le placer dans un fichier text pour le lire avec les fonction PHP de lecture de fichiers ( file() ) et ca a donne le même résultat ! ( ' بربار يامندة Ù†Ù ') !!!!!!!!!!!!!

    je voudrai afficher ces nom en arabe et les insérer dans ma table Mysql.
    si quelqu'un peut m'indiquer la solution avec Excel_reader ou même avec la classe COM de PHP.

    Merci.

  2. #2
    Membre Expert Avatar de Lorenzo77
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    1 472
    Détails du profil
    Informations personnelles :
    Âge : 53
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mai 2006
    Messages : 1 472
    Par défaut
    UTF8 est OK pour toutes les langues, dans ton cas le problème vient peut être du fichier excel, au moment de la lecture des données par le PHP, ces données ne sont peut être pas en UTF8 ... a verifier ..

    tu as essayé de passer par un CSV plutot qu'un XLS ?

  3. #3
    Membre à l'essai
    Inscrit en
    Octobre 2007
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 5
    Par défaut
    les fichier fourni sont de nombre important et tous au format xls (Exemple: http://egene.comze.com/RDN/1m1.xls
    Je suis obligé de faire avec ce format.

    excuse moi mais je n'ai aucune idee de la nature des données dans le fichier xls (je ne sais pas comment le savoir) tu peux le voir avec l'exemple que j'ai link.
    sinon voici le code que j'ai utilisé pour lire les données depuis xls:

    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
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
     
     require_once 'Excel/reader.php';
     $data = new Spreadsheet_Excel_Reader();
     $data->setOutputEncoding('UTF-8');
     
     $data->read('1m1.xls'); 
     error_reporting(E_ALL ^ E_NOTICE);
     
     echo '<table border="0" celspacing="1" bgcolor="#EEEEFF">
      <tr bgcolor="#CCCCFF">
        <th scope="col">Numéro</th>
        <th scope="col">Nom</th>
     
        <th scope="col">Date de naissance</th>		
     
      </tr>';
     
    	$rowIndex=1;
    	while ($data->sheets[0]['cells'][$rowIndex][NUM]!=''){
     
    		echo '
    		<tr bgcolor="#ffffff">'.	
     
    		   '<td>'.$data->sheets[0]['cells'][$rowIndex][1].'</td>
    		    <td>'.$data->sheets[0]['cells'][$rowIndex][2].
                            ' '.$data->sheets[0]['cells'][$rowIndex][3].'</td>
    		    <td>'.$data->sheets[0]['cells'][$rowIndex][4].'</td>
     
    		</tr>';
     
     		$rowIndex++;
    	}
    	echo '</table>';
    Edit: xls pas xsl (err de frape)

  4. #4
    Membre Expert Avatar de Lorenzo77
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    1 472
    Détails du profil
    Informations personnelles :
    Âge : 53
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mai 2006
    Messages : 1 472
    Par défaut
    Citation Envoyé par hasary Voir le message
    je n'ai aucune idee de la nature des données dans le fichier xsl
    vérifier les spécifications du format XLS (XSL ?) sur le site de microsoft.


    a ta place je ferais un test en passant un XLS en CSV et en jouant sur l'encodage du CSV.

  5. #5
    Membre à l'essai
    Inscrit en
    Octobre 2007
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 5
    Par défaut
    J'ai converti en CSV et ca me donne des ?????????? ??????? ????? 12/03/1996
    !!!!!!!!!!!!!!!!!!!!!!!!!!!!

  6. #6
    Membre Expert Avatar de Lorenzo77
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    1 472
    Détails du profil
    Informations personnelles :
    Âge : 53
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mai 2006
    Messages : 1 472
    Par défaut
    ton CSV est bien en UTF_8 ?
    si oui alors faut trouver le bon encodage dans dans le XLS (voir message précédent)

  7. #7
    Membre à l'essai
    Inscrit en
    Octobre 2007
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 5
    Par défaut
    Bonjour, et merci pour la réponse.
    j'ai trouvé un autre moyen de remplir mes tables depuis xls, le problème n fait n'entai pas la lecture depuis xls car même quand j'essaye de ramener les données de ma table le résultat est toujours en ????????? ????? ????? pour chaque enregistrement ou ya les caractères arabe:

    Ma base de donnée je l'ai crée avec encodage par defaut utf-8 unicode.
    tout les champs de mes tables sont en utf-8 unicode.
    quand j'insert des données en arabe et en utilisant PhpMyadmin il sont affiché correctement (dans phpmyadmin) mais le résultat de mes raquettes SELECT dans mon script est toujours " ????????. "

    finalement j'ai utilisé la fonction mysql_client_encoding et ca m'affiche que l'encodage est "latin1" alors que j'ai cree ma base avec utf-8 !!!!!!!!!!!!!
    et là je me suis bloqué ça dépasse mon lvl

    personne a une idée svp?

  8. #8
    Invité de passage
    Inscrit en
    Mai 2009
    Messages
    1
    Détails du profil
    Informations forums :
    Inscription : Mai 2009
    Messages : 1
    Par défaut xls php
    Vous faites un test d'affichage avant d'insérer les données à votre base.

    1-Essayer de récupérer une seule cellule du fichier excel contenant une valeur en arabe dans une variable $CelluleCapturee.
    2-Afficher cette valeur sur écran :

    echo $CelluleCapturee;

    3-Localiser le problème (si ça affiche la valeur en arabe correctement) ou (encore affiche des caractères ??????).

    à suivre...

  9. #9
    Membre éclairé Avatar de csharpshooter
    Inscrit en
    Mai 2009
    Messages
    98
    Détails du profil
    Informations forums :
    Inscription : Mai 2009
    Messages : 98
    Par défaut
    qu'elle est ta version de mysql???et PHP, car par defaut le codage de MySql c'est le latin1, je croi que c'est de la que vient ton problème, essaye de changer le codage avant de lancer la requête, mais cela n'est possible que sur des version > 4

Discussions similaires

  1. Importer des données Excel dans une table Access
    Par Flaguette dans le forum Modélisation
    Réponses: 3
    Dernier message: 25/09/2008, 21h50
  2. importer des données Excel dans une BD Access
    Par lemerite dans le forum VBA Access
    Réponses: 3
    Dernier message: 19/02/2008, 13h34
  3. Importer des données Excel dans sas8
    Par jean girolle dans le forum SAS Base
    Réponses: 5
    Dernier message: 10/08/2007, 16h40
  4. Importer des données Excel vers BD Access
    Par technopole dans le forum Access
    Réponses: 1
    Dernier message: 03/07/2006, 14h37
  5. Importer des données excel vers outlook
    Par faayy dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 17/10/2005, 09h30

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