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

Python Discussion :

traitement d'un fichier excel


Sujet :

Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre à l'essai
    Femme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2012
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2012
    Messages : 5
    Par défaut traitement d'un fichier excel
    bonjour,

    j essaye de lire des element depuis un fichier Excel , j ai reussi de le faire j 'ecris les lignes dans un fichier text les mots sont separer par " ;" , maintenant je veux recuperer le contenu des element de la ligne pour faire un traiatement genre voir si le nom est superieur d'un certain nombre de caractere de generer une erreur

    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
     
    def funct(rowx):
     
        l__list0 = []
        l__list1 = []
        l__list2 = []
     
        w = open_workbook("monfichier.xls")
        print w.sheet_names()
     
        sh0 = w.sheet_by_index(0)
        print "",w.nsheets
        l__list0 = sh0.row_values(rowx, start_colx=0, end_colx=25)
     
        print "l__list0",l__list0
        out = file( "monfichier.txt", "w" )
        for i in range(len(l__list0)):
            out.write(l__list0[i].encode('mbcs' ) +";")
        out.close()

  2. #2
    Membre Expert Avatar de PauseKawa
    Homme Profil pro
    Technicien Help Desk, maintenance, réseau, système et +
    Inscrit en
    Juin 2006
    Messages
    2 725
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Technicien Help Desk, maintenance, réseau, système et +
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 725
    Par défaut
    Bonjour,

    Je ne vois pas l’intérêt de lire le fichier pour en écrire un autre et enfin le relire et rechercher les erreurs... (etc) En plus avec .encode('mbcs' ).
    Pourquoi ne pas traiter directement l__list0 ? (Pas très orthodoxe comme nommage de variable au passage)

    @+

  3. #3
    Membre Expert Avatar de PauseKawa
    Homme Profil pro
    Technicien Help Desk, maintenance, réseau, système et +
    Inscrit en
    Juin 2006
    Messages
    2 725
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Technicien Help Desk, maintenance, réseau, système et +
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 725
    Par défaut
    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
    from xlrd import *
     
    def funct(rowx):
        w = open_workbook("monfichier.xls")
        sh0 = w.sheet_by_index(0)
        l_list0 = sh0.row_values(rowx, end_colx=25)
        print "l_list0 : %s" % l_list0
        # Ecriture
        with open("monfichier.txt", "w") as out_f:
            out_f.write(";".join(l_list0))
        # Lecture
        with open("monfichier.txt", "r") as in_f:
            retour = in_f.read().split(';')
        # Traitement
        test = [elem for elem in retour if len(elem) > 1]
        print "test : %s" % test
     
    funct(0)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    l__list0 : [u'i', u'j', u'k', u'l', u'm', u'n', u'o', u'p', u'q', u'r', u's', u't', u'u', u'v', u'w', u'x', u'y', u'z', u'aa', u'bb', u'cc', u'dd', u'ee', u'ff', u'gg']
    test : ['aa', 'bb', 'cc', 'dd', 'ee', 'ff', 'gg']
    Edit: oups

  4. #4
    Membre à l'essai
    Femme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2012
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2012
    Messages : 5
    Par défaut
    merci pour la reponse,
    je voulais executer ton code sachant que je travaile avec python2.2 ça n'execute pas

    pour l'encodage je l'utiluse car je lis un fichier XL qui contient des données en cyrilique
    le but de script c'est aprés avoir lit les données et verifier la conformité à certain regles prédefinit en mis à jour une base de donnée qui contient deja ces donnée le but c'est de migrer les données entre deux base XL et Oracle


    Citation Envoyé par PauseKawa Voir le message
    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
    from xlrd import *
     
    def funct(rowx):
        w = open_workbook("monfichier.xls")
        sh0 = w.sheet_by_index(0)
        l_list0 = sh0.row_values(rowx, end_colx=25)
        print "l_list0 : %s" % l_list0
        # Ecriture
        with open("monfichier.txt", "w") as out_f:
            out_f.write(";".join(l_list0))
        # Lecture
        with open("monfichier.txt", "r") as in_f:
            retour = in_f.read().split(';')
        # Traitement
        test = [elem for elem in retour if len(elem) > 1]
        print "test : %s" % test
     
    funct(0)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    l__list0 : [u'i', u'j', u'k', u'l', u'm', u'n', u'o', u'p', u'q', u'r', u's', u't', u'u', u'v', u'w', u'x', u'y', u'z', u'aa', u'bb', u'cc', u'dd', u'ee', u'ff', u'gg']
    test : ['aa', 'bb', 'cc', 'dd', 'ee', 'ff', 'gg']
    Edit: oups

  5. #5
    Membre Expert Avatar de PauseKawa
    Homme Profil pro
    Technicien Help Desk, maintenance, réseau, système et +
    Inscrit en
    Juin 2006
    Messages
    2 725
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Technicien Help Desk, maintenance, réseau, système et +
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 725
    Par défaut
    Python 2.2 ? J'espere que le code suivant vas suffire.
    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
    from xlrd import *
     
    def funct(rowx):
        w = open_workbook("monfichier.xls")
        sh0 = w.sheet_by_index(0)
        l_list0 = sh0.row_values(rowx, end_colx=25)
        print "l_list0 : " + str(l_list0)
        # Ecriture
        out_f = file("monfichier.txt", "w")
        for i in range(len(l_list0)):
            out_f.write(l_list0[i] + ';')
        out_f.close()
        # Lecture
        in_f = file( "monfichier.txt", "r")
        retour = in_f.read().split(';')
        in_f.close()
        # Traitement
        test = []
        for elem in retour:
            if len(elem) > 1:
                test.append(elem)
        print "test : " + str(test)
     
    funct(0)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    l_list0 : [u'i', u'j', u'k', u'l', u'm', u'n', u'o', u'p', u'q', u'r', u's', u't', u'u', u'v', u'w', u'x', u'y', u'z', u'aa', u'bb', u'cc', u'dd', u'ee', u'ff', u'gg']
    test : ['aa', 'bb', 'cc', 'dd', 'ee', 'ff', 'gg']

  6. #6
    Membre à l'essai
    Femme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2012
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2012
    Messages : 5
    Par défaut
    merci ça aide boucoup

    mais là je veux un traitement specifique sur chaque champs de la ligne par exemple si le le premier element de la liste dans l'exemple "aa" depasse 2 caractere un message d'erreur s'affiche

Discussions similaires

  1. traitement d'un fichier excel
    Par hattas dans le forum SAP
    Réponses: 7
    Dernier message: 14/05/2011, 10h07
  2. idee pour traitement sur plusieurs fichier excel
    Par jumpman dans le forum VB.NET
    Réponses: 0
    Dernier message: 28/10/2009, 19h38
  3. Traitement sur les fichiers Excel
    Par ProgD dans le forum API, COM et SDKs
    Réponses: 2
    Dernier message: 18/09/2007, 17h19
  4. Traitement avec un fichier Excel
    Par Seth77 dans le forum C#
    Réponses: 0
    Dernier message: 24/08/2007, 22h09
  5. [VBA-E]Traitement d'un fichier excel
    Par climz dans le forum Macros et VBA Excel
    Réponses: 10
    Dernier message: 12/04/2006, 14h28

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