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

Bibliothèques tierces Python Discussion :

Module xlwt, écrire dans Excel avec Python [Python 3.X]


Sujet :

Bibliothèques tierces Python

  1. #1
    Membre habitué
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2016
    Messages
    132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 26
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2016
    Messages : 132
    Points : 130
    Points
    130
    Par défaut Module xlwt, écrire dans Excel avec Python
    Bonjour,

    J'utilise ce module qui permet d'écrire dans Excel.
    Il m'a l'air assez complet mais je ne trouve pas comment faire un saut de ligne. Je m'explique :

    Je lis via un autre module dans un autre tableur Excel, ce qui me donne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    print('voila pierre\njacque')
    voila pierre
    jacque
    Je voudrais écrire maintenant ce texte composé d'un '\n' dans une cellule d'un autre tableur, ce qui me pose problème c'est ce '\n' le module ne le reconnait pas comme un saut de ligne, mais juste du texte.

    Je ne sais plus trop où aller, j'ai essayé de faire une fonction qui couperait ce texte en deux, mais sans succès.

    Merci d'avance.

  2. #2
    Membre éprouvé

    Homme Profil pro
    Ingénieur
    Inscrit en
    Août 2010
    Messages
    654
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Août 2010
    Messages : 654
    Points : 1 150
    Points
    1 150
    Par défaut
    Salut.

    Je ne suis pas sûr d'avoir saisi ce que tu veux exactement:
    • Ecrire un texte sur plusieurs lignes dans une seule cellule?
    • Ou écrire sur sur plusieurs cellules (sauter de cellule à chaque saut de ligne symbolisé par '\n')?


    Dans le premier cas c'est pas trop dur, il faut utiliser un style comme paramètre de la méthode write():
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    style = xlwt.XFStyle()
    style.alignment.wrap = 1
    # Write in cell B1
    sheet.write(0, 1, 'voila pierre\njacque', style)
    Dans l'autre cas on peut découper le texte via split('\n') ce qui nous fournit une liste de chaîne de caractères qu'il suffit d'écrire via une petite boucle:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    txt = 'voila pierre\njacque'
    txt_list = txt.split('\n')
    for i, t in enumerate(txt_list):
        # Write in the 'B' column
        sheet.write(i, 1, t)
    Voilà!

    J

  3. #3
    Membre habitué
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2016
    Messages
    132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 26
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2016
    Messages : 132
    Points : 130
    Points
    130
    Par défaut
    Merci pour votre réponse,

    Je parlais bien d'écrire avec saut de ligne dans une même cellule.
    J'ai 2-3 petites questions supplémentaires, tous les textes que je veux écrire n'ont pas forcément un saut de ligne est ce que ça va derranger le programme de mettre un style aligment ?
    Ou est ce que le style applique un saut de ligne juste quand il y aura un '\n' dans le texte ?

    De plus j'ai déjà un style particulier à la cellule :

    code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    feuil.write(0,row1.index(i),bis[2:len(bis)-1],easyxf('borders: left thin, right thin, top thin, bottom thin'))
    Si je mets un autre style Python se fache tout rouge

    Une derniere question, pourquoi sur Python quand on finit un text par un '\' le texte de s'arrete pas.
    Car je voudrais à partir d'une Entry de Tkinter, récuperer un nom de fichier Excel que je lirais ensuite.
    L'idée du code serait ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    a=Entry.get()
    readbook=open_workbook("H:\Python\Excel test\"+a)
    Mais le dernier backslash pose problème, si vous avez aussi une solution pour ca problème.

    Merci d'avance.

  4. #4
    Membre habitué
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2016
    Messages
    132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 26
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2016
    Messages : 132
    Points : 130
    Points
    130
    Par défaut
    J'ai résolus mon problème de backslash, il suffit d'en mettre deux.
    Pour ceux qui auraient un problème similaire :

    Code :

    Sinon pour un chemin c'est pareil, avec ici 'a' une Entry en String :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ("H:\Python\Excel test\Sauvegarde entries\\"+a+".xlsx")

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Inserer image dans excel avec PHP
    Par hamzito dans le forum Langage
    Réponses: 5
    Dernier message: 12/08/2011, 12h53
  2. convertir des donnees dans un fichier excel avec Python
    Par uppersheik dans le forum Bibliothèques tierces
    Réponses: 1
    Dernier message: 19/02/2010, 06h40
  3. deplacement dans Excel avec user form actif
    Par rodrigue62 dans le forum Excel
    Réponses: 5
    Dernier message: 29/03/2007, 12h40
  4. Manipuler un fichier excel avec python
    Par dipajero dans le forum Général Python
    Réponses: 4
    Dernier message: 09/02/2006, 23h14
  5. Alignement vertical dans Excel avec OLE
    Par Patrick Seuret dans le forum C++Builder
    Réponses: 6
    Dernier message: 20/11/2005, 15h10

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