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 :

Créer en python un classeur Excel?


Sujet :

Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Février 2008
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 10
    Par défaut Créer en python un classeur Excel?
    Bonjour,

    Je recherche de la doc pour créer un classeur Excel en python depuis un environnement linux.
    Plus précisément, j'ai un script shell qui me cré des fichiers CSV (colonnes de nombres séparées par des ; ) et je souhaiterais fusionner sous linux ces fichiers CSV en un classeur Excel où chaque fichier correspondrait à une feuille de calcul dans le classeur.

    J'ai trouvé ce lien : http://www.developpez.net/forums/d15...el-sous-linux/ mais je n'ai pas compris grand chose ...

    Si vous connaissez des tutos ou autre documentation sur ce type de manipulation, je suis preneur!

    Merci beaucoup!

  2. #2
    Membre éprouvé

    Profil pro
    Account Manager
    Inscrit en
    Décembre 2006
    Messages
    2 301
    Détails du profil
    Informations personnelles :
    Localisation : France, Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Account Manager

    Informations forums :
    Inscription : Décembre 2006
    Messages : 2 301
    Par défaut
    Es-tu obligé de travailler avec Excel ? Peux-tu utiliser ooCalc ?

    Quelle est la complexité des classeurs que tu veux produire ?

    Le format utilisé par ooCalcl étant du XML compréhensible (caché dans un fichier compressé), il est possible de faire rapidement un script Python pour créer des feuilles de calcul pas trop complexes.

    Sinon je viens de trouver ceci : http://ooolib.sourceforge.net/. A tester...

  3. #3
    Membre émérite
    Homme Profil pro
    Inscrit en
    Décembre 2007
    Messages
    758
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France

    Informations professionnelles :
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Décembre 2007
    Messages : 758
    Par défaut
    bonjour,

    je peux te proposer pyExcelerator:

    http://sourceforge.net/projects/pyexcelerator/

    il y a des exemples fournis dans l'archive

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Février 2008
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 10
    Par défaut
    Salut,

    Merci pour ta réponse. Les personnes qui vont utiliser le classeur de calculs sont sous Windows et sont des utilisateurs d'Excel.

    Les feuilles de calculs que je dois faire sont relativement simple : je dois tabuler des lois analytique et réaliser un calcul d'erreur relative avec les fichiers CSV générés.

    Je ne connais pas ooCalc, je vais me renseigner dessus. Si c'est réalisable avec ooCalc, je leur proposerai en solution alternative.


    @kango :
    Ton module pyExcelerator semble bien correspondre à ce que je veux faire. Je vai regarder les exemples d'utilisation et je vous tien au courant!

    Encore merci pour ces infos!

  5. #5
    Membre éprouvé

    Profil pro
    Account Manager
    Inscrit en
    Décembre 2006
    Messages
    2 301
    Détails du profil
    Informations personnelles :
    Localisation : France, Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Account Manager

    Informations forums :
    Inscription : Décembre 2006
    Messages : 2 301
    Par défaut
    Citation Envoyé par Gyslain Voir le message
    Ton module pyExcelerator semble bien correspondre à ce que je veux faire. Je vai regarder les exemples d'utilisation et je vous tien au courant!
    Si tu pouvais nous mettre ici un exemple tout simple cela serait sympa.

  6. #6
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 739
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 739
    Par défaut ou utiliser win32com?
    Code Python : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    from win32com.client import Dispatch
    xlApp = Dispatch("Excel.Application")
    xlApp.Visible = 1
     
    xlApp.Workbooks. Add()
    xlApp.ActiveSheet.Cells(1,1).Value = '(1,1) via active sheet'
    xlApp.Workbooks("Book1") .Sheets("Sheet1").Cells(1,1).Value = "(1,1)/Book1/Shet1- names"
    xlApp.Workbooks(1).Sheets(1).Cells(1,1).Value = "(1,1)/book_id/sheet_id"
    xlBook = xlApp.Workbooks(1)
    xlSheet = xlApp.Sheets(1)
    xlSheet.Cells(1, 1).Value = "(1,1) en bref"

    Ce qui suppose développer un peu sur windows.
    -W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  7. #7
    Membre émérite
    Homme Profil pro
    Inscrit en
    Décembre 2007
    Messages
    758
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France

    Informations professionnelles :
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Décembre 2007
    Messages : 758
    Par défaut
    bonjour,

    pour répondre à rambc, un petit exemple:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    import pyExcelerator as Excel
     
    def writexls(data):
     
        xls = Excel.Workbook()
        sheets = {}
        for name in data.keys():
            sheet = xls.add_sheet(name) # je crée une feuille nommée name
            sheet.write(0,0,"A1") # j'écris "A1" dans la cellule A1 (0,0)
            j = 0
            for value in data[name]:
                j += 1
                sheet.write(j,0,"%f" % value) # j'écris à la ligne j, colonne 0
        xls.save("out.xls") # je crée le fichier out.xls

  8. #8
    Membre émérite
    Avatar de Antoine_935
    Profil pro
    Développeur web/mobile
    Inscrit en
    Juillet 2006
    Messages
    883
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur web/mobile

    Informations forums :
    Inscription : Juillet 2006
    Messages : 883
    Par défaut
    Citation Envoyé par rambc Voir le message
    Le format utilisé par ooCalcl étant du XML compréhensible (caché dans un fichier compressé), il est possible de faire rapidement un script Python pour créer des feuilles de calcul pas trop complexes.
    Soit dit en passant, le format xlsx (Office Excel 2007) est également une archive zip contenant du xml.
    Ce xlm répond au format OpenXML.

Discussions similaires

  1. Créer du code vba excel réutilisable dans d'autres classeurs excel
    Par nicoMU dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 20/11/2008, 15h22
  2. Réponses: 6
    Dernier message: 16/09/2008, 11h58
  3. [C#] Créer une nouvelle feuille dans un classeur Excel
    Par amoiraud dans le forum Windows Forms
    Réponses: 4
    Dernier message: 12/03/2008, 08h53
  4. Créer un fichier journal suite à mise à jour de classeur Excel
    Par tinkye_winkye dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 17/11/2007, 20h18
  5. créer classeur Excel portant le nom d'une ComboBox
    Par Chewi dans le forum Macros et VBA Excel
    Réponses: 13
    Dernier message: 06/12/2006, 09h01

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